カスタム投稿タイプとtaxonomyでのパーマリンクについて、自分なりにまとめたのでメモ。
※パーマリンクは/%category%/%post_id%.htmlで設定。
http://example.com/カスタム投稿タイプ名
http://example.com/カスタム投稿タイプ名/投稿スラッグ
http://example.com/タクソノミー名/ターム名
※1:’has_archive’ => true
※2:通常は項目名。投稿スラッグで変更可能。投稿スラッグは管理画面右上の表示オプションからスラッグにチェックすると入力項目が表示される。
カスタム投稿タイプ名、タクソノミー名はrewriteでslug指定可能。
スラッグ名は下記で指定する。
'rewrite' => array( 'slug' => スラッグ名 )
このスラッグを使って、http://example.com/カスタム投稿タイプ名/タクソノミー名/ターム名にてアクセスはできないものかと試したので一応メモ。
・タクソノミー名のスラッグ指定にてカスタム投稿タイプ名/タクソノミー名を指定、かつカスタム投稿作成時(register_post_type)に下記を指定した時
'rewrite' => array( 'slug' => 'カスタム投稿タイプ名/タクソノミー名' ),
'has_archive' => true,
//スラッグ名には記号(/)を指定することも可能。
http://example.com/カスタム投稿タイプ名 → アーカイブ表示された。
http://example.com/カスタム投稿タイプ名/タクソノミー名/ターム名 → ページが見つかりません。
・タクソノミー名のスラッグ指定にてカスタム投稿タイプ名/タクソノミー名を指定、かつカスタム投稿作成時(register_post_type)に下記を指定した時
'rewrite' => false,
'has_archive' => false,
http://example.com/カスタム投稿タイプ名 → ページが見つかりません。
http://example.com/カスタム投稿タイプ名/タクソノミー名/ターム名 → アーカイブ表示された。
※ちなみにhttp://example.com/カスタム投稿タイプ名/ターム名でも同じ。
スラッグだけで単純にはできないみたい。
と調べていたら、下記のサイトを発見。
カスタム分類のパーマリンクを”/カスタム投稿名/カスタム分類名/項目”にする。
http://example.com/カスタム投稿タイプ名 → アーカイブ表示された。
http://example.com/カスタム投稿タイプ名/タクソノミー名/ターム名 → アーカイブ表示された。
この形式のパーマリンクが必要なときはこれで対応してみよう。