【WordPress】カテゴリーページのURLから/category/を消す3つの方法

目安時間 4分

【WordPress】カテゴリーページのURLから/category/を消す3つの方法

WordPressでパーマリンクの設定を【/%category%/%postname%.html】とした場合、記事のURLは【/category/カテゴリー名/記事名.html】となってしまいます。

 

このURLの【/category/】は余分なので、これを消す方法です。

 

【/category/】を消す方法としては、次の3つの方法があります。

    • パーマリンクの設定を変更してURLから【category】を消す方法
    • プラグインを使ってURLから【category】を消す方法
    • function.phpにコードを追加してURLから【category】を消す方法

パーマリンクの設定を変更して【category】を消す方法

この方法が一番簡単です。カスタマイズもプラグインの導入も必要ありません。

 

管理画面の「設定」→「パーマリンク設定」で共通設定を下記の【カスタム構造】にします。

【/%category%/%postname%.html】

 

そして下の【カテゴリーベース】に【.】を入力して、設定を保存します。

 

プラグインを使って【category】を消す方法

次はプラグインを使う方法です。

 

プラグイン「WP No Category Base」をインストールして有効化します。

 

特に設定は必要ありません。有効化するだけでOKです。

 

注意点としては、カテゴリースラッグが日本語の場合、404になる可能性がありますので、カテゴリースラッグは必ず英数字で設定してください。

 

function.phpにコードを追加して【category】を消す方法

3番目の方法はfunction.phpにコードを追加する方法です。

 

以下のコードをfunctions.phpに追記してください。

function rem_cat_function($link) {
return str_replace("/category/", "/", $link);
}
add_filter('user_trailingslashit', 'rem_cat_function');
function rem_cat_flush_rules() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action('init', 'rem_cat_flush_rules');
function rem_cat_rewrite($wp_rewrite) {
$new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2));
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_filter('generate_rewrite_rules', 'rem_cat_rewrite');


カテゴリー
新着記事