このエントリーをはてなブックマークに追加

ワードプレスのパーマリンクについて整理するメモ

固定ページの場合:http://~/postname がデフォルトだが、http://~/postname.html とすることが出来る。
投稿のシングルページ場合:パーマリンク設定をすると、http://~/カテゴリースラッグ/post_id.html とすることが出来る。
投稿のカテゴリーアーカイブの場合:http://~/category/カテゴリースラッグ/ がデフォルト。
これだと普通のhtmlのホームページの場合と比較して考えると、http://~/category/で表示されるページがありそうだが、実際はない。が、プラグインを使ってhttp://~/カテゴリースラッグ/ とすることが出来る。

ここまではワードプレスを使って普通のhtmlと同じディレクトリ構成に見せたい場合の必須だろう。

さて、カスタム投稿でカスタム分類をつけた場合、デフォルトでは
シングルページは http://~/postname、
カスタム投稿のアーカイブはhttp://~/カスタム投稿名/、
カスタム分類のアーカイブはhttp://~/カスタム分類/ターム/ となる。
例えばカスタム投稿タイプがmenu、カスタム分類(投稿だとcategory にあたる部分)がfood、ターム(投稿だとカテゴリースラッグにあたる部分)がlunch だとすると、
シングルページ http://~/menu/postname、
カスタム投稿のアーカイブhttp://~/menu/、
カスタム分類のアーカイブhttp://~/food/lunch/ となるので、普通のhtmlのホームページと比較して考えると奇妙に見えるし、投稿タイトルが英語なら良いが、日本語の場合に都度スラッグを書き換えるのも面倒だろう。

解決策:
Custom Post Type Permalinks で設定する。
有効化するとパーマリンク設定のページにカスタム投稿の設定が追加されるので、上記の例の場合だと /%food%/%post_id%.html として、「カスタム分類のアーカイブを変更する。」にチェックを入れておけば、
シングルページ http://~/menu/lunch/post_id.html、
カスタム投稿のアーカイブhttp://~/menu/、
カスタム分類のアーカイブhttp://~/menu/food/lunch/ と表示できる。

カスタム投稿の設定は
カスタム投稿+パーマリンク設定:CMS Press
カスタム投稿+カスタム分類+カスタム投稿のアーカイブ表示+パーマリンク設定:Custom Post Type UI + Custom Post Type Permalinks
カスタム投稿+カスタム分類+カスタム投稿のアーカイブ表示+パーマリンク設定+カスタムフィールド:Magic Fields2 + Custom Post Type Permalinks *この組み合わせは未検証
で行うのが便利かと。

*2012/9 追記 CMS Press は3.3以降未対応

2012/10/20追記
WP No Taxonomy Base を使うとカスタム分類のアーカイブでカスタム分類名を省略することが出来る。が、ひとつのカスタム投稿に複数のカスタム分類があり、Custom Post Type Permalinks でタームを挟むパーマリンクを設定している場合、そのカスタム分類のみに有効。
Custom Permalinks でカスタム投稿のパーマリンクを設定する場合、Custom Post Type Permalinks でタームを挟む設定をしている場合はそのタームを挟まないとダメ。

2012.02.12 投稿 2015.04.05 更新

新しい情報を追記している場合はありますが、古い情報の修正はしていません。投稿日・文中の日付を参照してください。

Recent Articles