【WordPress】パーマリンクからカテゴリーベースを取り除く方法
WordPressのパーマリンクは、デフォルトの状態でカテゴリー以下を表示した場合、カテゴリーベースが含まれます。
結構文字数が取られるため、URLを少しでも短くするなら取り除いておきたいところなんですよね。ということで、今回はそんなカテゴリーベースをサクッと取り除く方法を紹介します。
”カテゴリーベース”とは?
“カテゴリーベース”は、カテゴリーページ、あるいはカテゴリー名を含むパーマリンクの記事ページを表示させた際に含まれる/category/
という文字列のこと。
https://example.com/category/categoryName/
通常、WordPressでカテゴリーを含むパーマリンクは上記のように出力されますが、カテゴリーベースを取り除くことで、
https://example.com/categoryName/
このように /category
が消え、パーマリンクを短くすることができます。
”カテゴリーベース”を取り除くには?
プラグインを使う
まずひとつめの方法が、プラグインを利用するというもの。
有名どころだと、「WP No Category Base – WPML compatible」でしょうか。
WordPress.orgに登録されているものはバージョン1.1.0で2年以上更新されていませんが、Githubのほうは新たに1.1.5がリリースされています。
この他にも同様の機能を持つ、「FV Top Level Categories」などがありますが、総じて日本語がスラッグに含まれていると404ページヘ飛ばされてしまう、という問題があるので、別途回避策を講じなければなりません。
パーマリンク設定で取り除く
続いて紹介するのが、WordPressのパーマリンク設定からちょろっと設定を変更するだけの、どシンプルな方法です。
WordPressのダッシュボードから、[設定]→[パーマリンク設定]へ進み、設定画面のオプションにあるカテゴリーベースを以下のように変更します。
カテゴリーベースに、.
(ドット)を入力し、[変更を保存]するだけという簡単さ。
これだけでURLから/category/
が取り除かれた状態になります。
ただ、これにも制約があって、パーマリンクが/%category%/%postname%/
という構造だと、サブカテゴリーを含むページを表示したとき、404エラーになってしまうんですね。
/%category%/%postname%.html
という構造では問題なく表示されるため、当ブログでは長らくこの方法を採用してきました。
この方法はパーマリンク構造を変える必要が出てくるので、すでに運用しているWordPressサイトやブログだと、URLの変更を余儀なくされてしまいます。
URL変更によって、ソーシャルメディアのシェア数などはリセットされてしまうので、注意して実施するようにしましょう。
置換して取り除く
上記の「パーマリンク設定で取り除く」方法と同じパーマリンク構造でなきゃいかんのですが、その構造を採用しているならカテゴリーベースにドットを打つよりも、この方法でカスタムベースを取り除くべきだと思います。
当ブログもこの方法に切り替えました。
というのも、「パーマリンク設定で取り除く」と、URLの見かけ上ではカテゴリーベースが削除されているんですが、システム的には/caegory/
が.
に置き換わっているに過ぎず、canonical属性を始めとした実際のURL出力は、
http://example.com/./wordpress/
となってしまっています。このこと自体、かなり以前から認知していたものの、実際の表示上は問題ないということもあってそのままにしていました。
とは言え、URL正規化を示すcanonical属性に出力されているURLが上のようなものでは、SEOで重大な問題になりかねません。
そこで、functions.phpにカテゴリーベースを置換してしまう記述を加えました。
この方法で実装する場合、先の「パーマリンク設定で取り除く」方法でカテゴリーベースに.
を入力している場合、.
を削除して、初期状態に戻しておく必要があります。
プラグイン利用がおすすめ
とまあ、いくつかの方法を紹介しましたが、結論としてはオールマイティーに、かつ簡単に取り除くなら、やっぱりプラグインを利用したほうがいいのかなと思います。
ただ、プラグインを利用する分、多少の負荷がかかってくるので、そういうのが嫌だという場合はプラグインレスの方法を採用するのがいいかも。
そこそこ長く運用していると、いずれの方法もURL変更の必要性が生じるので、結局のところどちらを採るかは運用者次第。
こうしたURL構造は、サイトの構築段階で決めておくべきものだと覚えておきましょう。