WordPressではタクソノミー名が邪魔!
「GOOGLEとユーザーに理想的なURL構造とその理由」で触れたように、ムダのないツリー型のURL構造は、検索エンジンにもユーザーにとってもページの内容・サイトの構造をわかりやすくする重要な項目です。
その為、今回はWordPressで
http://bookof.com/book/technical/pc/web/css/487311232X/
の様なURL構造を目指すことにします。
上記のURLを例えばWordPressで作成しようとした時、流れとしては下記のような形が考えられます。
- http://bookof.com/ というドメインにWordPressを入れる。
- bookというカスタム投稿タイプを作る
- typeというタクソノミーを作る
- technical>WEB>CSS等のタームを作成し、親子関係を付けてツリー構造にしていく
- パーマリンクを調整する
しかし、御存知の通りWordPressで上記の様に作成していくと、URLは例えば下記の様になります。
http://bookof.com/type/css/
「Custom Post Type Permalinks」プラグインを使用すれば、
http://bookof.com/post_type/taxonomy/term
の形までは再現できますが、タクソノミーが含まれてしまい、
http://bookof.com/post_type/taxonomy/
に表示させる内容がありません。パンくずリストともズレが出て来ます。
この状態は「GOOGLEとユーザーに理想的なURL構造とその理由」で触れた理想のURL構造とは違いますので、修正する必要があります。
この状態を修正するためには、WordPressのリライトルール(Rewrite Rules)を変更すれば対応可能です。
リライトルール(Rewrite Rules)とは?
WordPressにはリライトルール(Rewrite Rules)というものがあります。
リライトルール(Rewrite Rules)とは、そのままですがURLを書き直すルールです…
つまり、通常WordPressルートディレクトリにはwp-content
・wp-includes
・wp-admin
のディレクトリがあり、直接アクセスするのはindex.phpですが、
静的サイトのディレクトリ構造の様に見せかけたりしたいので何とかしましょうよっていう仕組みですね。
リライトルールはDBに保存されており、rewrite_rules_array
等のフックで追加・削除をすることが出来ます。
今回の理想のURLを実現するには、下記のようなリライトルールを追加すれば良いので、次のページでrewrite_rules_array
フィルターに命令を引っ掛けて追加する具体的なコードを書いてみましょう。