サポート » 使い方全般 » 子孫タームに同じテンプレートを割り当てたい

  • お世話になります。
    ■商品
     ●果物
      ▲りんご
       ★青森
       ★北海道
      ▲マンゴー
       ★宮崎
       ★沖縄

    というカスタム投稿タイプをつくっていたとします。

    taxonomy-果物-りんご.php
    で、りんごにアーカイブのテンプレートが割り当てられると思いますが、

    下の「青森、北海道」にも「taxonomy-果物-りんご.php」のテンプレート
    「宮崎、沖縄」には「taxonomy-果物-マンゴー.php」のテンプレート

    をそれぞれ使用したい場合、どのようにしたら良いでしょうか。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • モデレーター jim912

    (@jim912)

    ■商品
     ●果物
      ▲りんご
       ★青森
       ★北海道
      ▲マンゴー
       ★宮崎
       ★沖縄

    というカスタム投稿タイプをつくっていたとします。

    ちょっと説明が足りてないように思いますが、後に続く文面からするに
    商品:カスタム投稿タイプ
    果物:カスタムタクソノミー
    りんご、マンゴー:親ターム
    青森、北海道、宮崎、沖縄:子ターム
    という認識でよいでしょうか。

    この場合、子タームである場合、親タームのテンプレートが存在しているならば、それを優先的に適用するというルールになろうかと思います。

    これを実現するには、

    • taxonomy_template、もしくは template_include フィルターにフック
    • is_tax( ‘果物’ ) で条件分岐
    • get_queried_object でリクエストされたタームを取得
    • タームのparent が 0でなければ、parent のタームを取得し、locate_template 関数を用いて親タームのテンプレートの有無をチェック
    • 存在した場合は、親タームのテンプレートを return

    という流れになります。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「子孫タームに同じテンプレートを割り当てたい」には新たに返信することはできません。