【WordPress】URLからcategoryを消す・非表示にする方法

wordpressのcategoryディレクトリを消す方法

WordPressでURLに入ってしまう、https://2ldk-yck.com/category/sample/の「/category/」を消す方法をご紹介します。

categoryを消す方法① fanction.phpに設定する

fanction.phpに下記のコードを追記します。

fanctaon.php
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');

コードの解説

上記コードをchatGPTにサクッと解説してもらいます。

  1. remcat_function 関数: この関数は、与えられたリンク(URL)から”/category/”という文字列を削除するために使用されます。具体的には、str_replace 関数を使用して、リンク内の”/category/”を空文字列(つまり削除)に置き換えます。
  2. add_filter('user_trailingslashit', 'remcat_function');: この行は、WordPressのuser_trailingslashit フィルターに対して、remcat_function 関数を適用するように指定します。このフィルターは、URLの末尾にスラッシュ(/)を追加または削除するために使用されます。remcat_function 関数が呼び出され、カテゴリーに関連するスラッシュが削除されます。
  3. remcat_flush_rules 関数: この関数は、WordPressのルーティング(パーマリンク)ルールをフラッシュ(リセット)するために使用されます。$wp_rewrite->flush_rules() を呼び出すことで、新しいルールが適用されるようになります。
  4. add_action('init', 'remcat_flush_rules');: この行は、WordPressが初期化する(’init’ フック)タイミングで remcat_flush_rules 関数を実行するように指定します。これにより、新しいルーティングルールが適用されます。
  5. remcat_rewrite 関数: この関数は、カテゴリーページのパーマリンクをカスタマイズするために使用されます。$new_rules 配列に新しいパーマリンクルールを追加し、カテゴリー名とページ番号を指定します。
  6. add_filter('generate_rewrite_rules', 'remcat_rewrite');: この行は、generate_rewrite_rules フィルターに remcat_rewrite 関数を適用するように指定します。これにより、新しいパーマリンクルールが生成され、カテゴリーページのURLがカスタマイズされます。

categoryを消す方法② プラグインを利用する

プラグインNo Category Base (WPML)を使う

プラグイン「No Category Base (WPML)」をインストールして/category/を消す方法があります。

設定方法は、とても簡単で、Wordpressのプラグイン > 新規追加から検索窓にNo Category Baseと入力。

表示されたら、プラグインをインストールしましょう。

あとはプラグインを「有効化」するとカテゴリ一覧のURLから/category/を消すことができます。

categoryを消したら詳細ページが404になった!

あわてなくて大丈夫です。

その場合は、パーマリンク設定を更新すると表示されます。

詳細ページの404解消方法
  1. wordpressの管理画面から「設定」>「パーマリンク」を開きます。
  2. なにも変更せずに下部にある「変更を保存」ボタンを押します。
  3. サイトに戻って再度表示を確認します。

ディレクトリからcategoryを消すメリット

categoryを消すメリットは、実は特にあまりありません。

SEO効果を狙ってといっても、大事なのはディレクトリ構造よりもリンク構造の方が大切な為です。

例えば、サイトリニューアルの際にすでに/category/ディレクトリがない場合や、URLをすっきりさせたい場合に利用するとよいでしょう!

categoryを消した後の注意点

検索結果上位表示対策、いわゆるSEO対策として、URLに対してSEO効果がつく為、URLを変更するとSEOの効果がゼロになってしまう一度URLを変更した場合はそのまま利用しましょう。

万が一、/category/ディレクトリを表示させたくなった場合は、為、.htaccessで301リダイレクトを記載しURLが恒久的に変更になったことをGoogleにつたえましょう。

wordpressの/category/ディレクトリを消す方法 まとめ

wordpressで【「/category/」がURLに含まれる】を消す方法を紹介しました。この設定は、サイトを新規作成する段階やリニューアルする前の段階で、設定するようにしましょう!