質問: お世話になります。 wordpressのカスタム投稿タイプを使用した際の、 テンプレートについて質問があります。 以下、やりたいことです。 1.通常の「投稿」にいくつかカテゴリー(例:ctg1/ctg2)を作る。 2.CPT UIを使用し、カスタム投稿タイプ(例:ptypeA)を作る。 3.CPT UIの投稿タイプ設定画面の最下「利用するタクソノミー」で、 「カテゴリー (WP コア)」を選択 これで、ptypeAの投稿にもデフォルトカテゴリーctg1/ctg2を使用することが出来ると思うのですが、 ■通常の投稿のカテゴリーctg1のカテゴリーアーカイブページ ・URL:www.hoge.jp/ctg1/ ■投稿タイプptypeAの投稿のカテゴリーctg1のアーカイブページ ・URL:www.hoge.jp/ptypeA/ctg1/ としたいとき、上記2つのページで使用するテンプレートを変えるにはどうしたらいいでしょうか。 ちなみに、解決に関係あるかわかりませんが、 archive-ptypeA.php はptypeAの全体まとめページ(www.hoge.jp/ptypeA/)用に使用してしまっています。 例えると、 ・野菜ラインナップ(www.hogevege.jp) ├トマト品種一覧(www.hogevege.jp/tomato/) └ニンジン品種一覧(www.hogevege.jp/carrot/) ・野菜ジュースラインナップ(www.hogevege.jp/juice/) ├トマト味商品一覧(www.hogevege.jp/juice/tomato/) └ニンジン味商品一覧(www.hogevege.jp/juice/carrot/) で、2つの「トマト一覧」ページで使用するテンプレートを変えたいです。 上記実現出来る方法(テンプレートのファイル名の付け方?) ご存じの方、何卒、ご教授お願いします。
回答: 同名カテゴリーで、複数テンプレートファイルの切り替えは、基本的にできません。 カテゴリーアーカイブを例にすると 1. category-{slug}.php 2. category-{id}.php 3. category.php 4. archive.php 5. index.php の順で、最初に一致したテンプレートファイルが利用されます。 どうしても表示内容を変更したいのであれば、https://wpdocs.osdn.jp/カテゴリーテンプレート の「カテゴリーによって異なるテキスト」に記載されているように テンプレートファイルの中で、条件分岐して、表示内容を変える必要があります。 たとえば、質問の例に書かれている例を使って、トマトカテゴリーで考えると `category-tomato.php` の中で、 ``` if( is_post_type_archive('juice') ) { get_template_part('tomato', 'juice'); } else { get_template_part('tomato', 'main'); } ``` のように条件分岐して、実際の内容を `tomato-main.php` と `tomato-juice.php` に記載する感じになるでしょうか。 条件分岐タグですが、カスタム投稿タイプ `is_post_type_archive()` で判断できたら良いのですが、テストしていないので不明です。 (できなければ、URL で判断しないとダメかもしれません...) 参考: * https://wpdocs.osdn.jp/テンプレート階層 * https://wpdocs.osdn.jp/カテゴリーテンプレート * https://wpdocs.osdn.jp/条件分岐タグ