パーマリンクでカテゴリースラッグを表示する設定にすると、カテゴリーページのURLに「category」が挿入されてしまいます。この「category」は不要なことが多いと思います。
今回はカテゴリーページのURLから「category」を削除する方法について解説します。
目次
プラグインを使う
Yoast SEOなどのプラグインを使用すると、簡単な設定で「category」を削除することができます。
しかし、SEO系のプラグインを他で使用していたり、余計なプラグインを追加したくない場面があると思います。
そんなときは次の方法で実装することをお勧めします。
functions.phpに追記する
functions.phpに以下の記述を追加すると、カテゴリーページのURLから「category」を削除することができます。
余計なプラグインを追加する必要がないため、こちらの方法がお勧めです。
/**
* カテゴリーページのURLから/category/を削除
*/
function remcat_function($link) {
return str_replace("/category/", "/", $link);
}
add_filter('user_trailingslashit', 'remcat_function');
function remcat_flush_rules() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action('init', 'remcat_flush_rules');
function remcat_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', 'remcat_rewrite');
まとめ
WordPressを構築したことがある人なら、誰もが一度は直面したことのある問題かと思います。
WordPress構築の際は必ずfunctions.phpに記述する”テンプレート”としてまとめておくと良いかもしれません。