WordPressのアーカイブページ、またはカテゴリーページのパーマリンクには「/archives」や「/category」という文字列が含まれます。
http://sample.com/archives/category/news/
または……
http://sample.com/category/wordpress/
などなど。
この余分な文字列(「/archives」や「/category」)を削除するにはどうしたらいいか?
パッと、いくつかの方法が思いつきますね。
- ダッシュボードのメニュー「パーマリンク設定」から「カスタム構造」を書き換える方法。
- テーマファイル内の「functions.php」にコードを書き加えて、デフォルトのスラッグを置換して取り除く方法。
- 「.htaccess」を使って強引にリダイレクトさせてしまう方法。
- ワードプレスのプラグインを利用する方法。
いずれの方法も一長一短がありますが、今回のケースに限ってはプラグインを使う方法をお勧めします。
通常、ワードプレスを利用するときはなるべくプラグインには頼らずに運用するのがベターです。
しかしながら、ここで紹介する[WP No Category Base]というプラグインを使えば、設定も不要で簡単にアーカイブページのパーマリンクの文字列を整形することが可能になります。
WP No Category Base
インストールするには以下の公式配布サイトからダウンロードするか、ダッシュボードの「プラグイン」→「新規追加」から、キーワード「WP No Category Base」で検索すると同名のプラグインがヒットします。
現時点(2015年8月)で、プラグインの最終更新日が「2012年7月29日」となっており、2年以上経過しているためWordPress.orgの警告メッセージが表示されています。数年間も更新されていないのはちょっと気になるところではありますが、優良プラグインなのは間違いありません。
先に述べたとおり、このプラグインには設定項目がなく、有効化した時点でパーマリンクが整形されます。
仮に「/archives」や「/category」が含まれる旧URLにアクセスした際には、きちんとリダイレクトして新URLで表示されます。
404エラーの心配が無いというのは大きな魅力であり、この点において他の解決策よりも優れていると言えるのではないでしょうか。
ちなみに[WP No Category Base]を有効化すると、パーマリンクは以下のように変化します。
http://sample.com/archives/category/news
↓↓↓
http://sample.com/news
http://sample.com/category/wordpress
↓↓↓
http://sample.com/wordpress
アーカイブページを表示させると、URLから該当する文字列が消えているのを確認できるはずです。
プラグインを無効化した際の注意点
このプラグインを利用するにあたって、1つだけ注意点があります。
一度[WP No Category Base]を有効化して、その後このプラグインが必要なくなって無効化したとき。
カテゴリーやタグの一覧や固定ページ、投稿ページが表示されなくなるトラブルが発生します。
ほぼ必ずと言っていいほどこの状況に陥りますが、慌てずに管理画面のダッシュボードから「パーマリンク設定」のページに移動して、「変更を保存」をクリックしてパーマリンクを再設定してください。
これでプラグインを有効化する前のデフォルトの状態に戻ります。