ワードプレス(WordPress)

WordPressの「catgory」を消す方法はプラグインがいいか、カテゴリベースに「.」を設定するのがいいか

この記事は約3分で読めます。

WordPressのcatgoryWordPressでカテゴリページを表示するURLには「catgory」が入る。これはWordPressの標準仕様である。新規作成のときはさほど意識しなくてもよいが、サイト移転のときにできるだけカテゴリ構造のURLを以前のサイトと合わせたい場合などにはURLから「catgory」を消したい。この方法を調べてみると、プラグインで設定する方法と、パーマリンク設定のカテゴリベースに「.」を入れることで消すという方法の2つが有力である。この2つの方法を比較してみた。
なお、他にはテンプレートやphpソースを書き換える方法があったが、一般企業が運用するさいのメンテナンスが困難なので見送ることにした。

「catgory」を消すプラグインを使う方法

これまではWordPress SEO by Yoastが「catgory」を消す機能をサポートしていた。しかし、現在はサポートしていない。そのため、「catgory」を消すためだけのプラグインを探してみた。

というあたりの評判がよさそうである。
もっとも使い勝手がよさそうなのは「WP No Category Base」だ。動作も軽そうで、カテゴリ変更した場合に発生するリンク切れに関して、自動的に301リダイレクトをしてくれる機能がある。「.htaccess」で301リダイレクトを追加しなくともよいのでSEO的にも有効で手間が省けるのがよい。しかし、この機能がアダになっているようである。「WP No Category Base」を削除してしまうと、すべてのページが404エラー(Not Found)を起こしてしまうという症例もあるようだ。

プラグインを使う場合は十分にテストしてから実運用に入ったほうがよさそうである。

プラグイン無しで「catgory」を消す方法

WordPressのパーマリンク設定のページの設定で「catgory」を消すことができる。オプションのカテゴリベースのところに「.」(ドット)だけを入れて変更を保存するだけでよい。

▼WordPressのパーマリンク設定の画面

wplinkstting.jpg

これは「蕎麦の食べ歩き北陸」というWEBサイトのWordPress管理画面例である。現在はパーマリンクを「投稿名」にしてある。この下部にオプションの画面がある。

オプションのカテゴリベースのところに「.」(ドット)だけを入れて変更を保存する。

wpcatdot.jpg

これだけでOKなのである。

このように、カテゴリベースのところに「.」(ドット)を入れるだけで「catgory」を消すことができる。しかし、この方法にも弱点がある。WordPressの個別ページのパーマリンクとカテゴリページが重複(一致)してしまうかもしれないという危険をはらむからである。「catgory」という部分がURLに入るのがカテゴリページだとすれば重複するおそれは無い。しかしこの「catgory」を表示しないことで特定の個別ページと特定のカテゴリページの生成URLがまったく一致してしまうかもしれないのである。

この重複を防ぐためには、個別ページの生成URLを変更しておくのがよい。上記の設定画面でカスタム構造を使えばそれができる。

▼参照
http://wpdocs.sourceforge.jp/パーマリンクの使い方

たとえば、個別記事をカテゴリフォルダに属させて、.htmlをつけるという方法がある。

/%category%/%post_id%.html

表示例:https://sindan.org/ishikawa/100.html

このように個別記事に「.html」を生成すればカテゴリ名との重複はなくなる。

ただし、この方法を選んだ場合は、個別記事画面でパーマリンクを好きな名前に変更することができなくなる。

いろんな制限があるので、どの方法が一番そのWEBサイトに適しているかを考えて実施しよう。