SEO対策

カテゴリページに固定ページを設定する方法【WordPress】

WordPressでカテゴリページを強化したい場合があります。通常、カテゴリページへアクセスすると、URLが「ドメイン/category/スラッグ」で、そのカテゴリの記事一覧がされます。

この記事では、次のことを行います。

  • URL「ドメイン/category/スラッグ」→「ドメイン/スラッグ」に変更
  • 「ドメイン/スラッグ」で表示するコンテンツを固定ページにする

【変更前】

【変更後】

カテゴリページに固定ページを設定する方法

前提:私の環境

パーマリンク:/%category%/%post_id%/

※環境によって想定どおりに動かない場合があります。自己責任でお願いします。

ステップ1:fuction.phpに追記

通常カテゴリページは「https://ドメイン/category/スラッグ」というURL構造になっていますが、「/category」を削除するphpコードをfunction.phpに書き入れます。

add_filter('user_trailingslashit', 'remcat_function');
function remcat_function($link) {
    return str_replace("/category/", "/", $link);
}
 
add_action('init', 'remcat_flush_rules');
function remcat_flush_rules() {
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}
 
add_filter('generate_rewrite_rules', 'remcat_rewrite');
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;
}

ステップ2:カテゴリのスラッグと同じスラッグの固定ページを作成

カテゴリのスラッグ:monetize

category

固定ページのスラッグ:monetize

page

 

設定は以上です。注意点として、「No Category Base (WPML)」など、「/category」を削除するプラグインを停止にしないと、上記がうまく動かない場合があります。