サポート » 使い方全般 » テンプレートの指定方法

  • 解決済 mmedo78

    (@mmedo78)


    ●WordPressバージョン2.5.1

    テンプレートの指定方法で悩んでいます。

    例えば・・・Aの親カテゴリとAに属する子カテゴリB、Cがあるとして、「親A」に属する「子B、C」は「親A」と共通のテンプレート。
    もし、親カテゴリ「E」を新規追加し「子C」を「親E」に属する子カテゴリとした場合、「子C」は「親E」のテンプレートに自動的に切り替わる。

    このように、属する親カテゴリーのテンプレートが、子カテゴリーにも反映されるようにしたいのです。もし、方法があれば教えてください。
    宜しくお願いいたします。

    ▼以下の方法以外でお願いいたします

    • 子カテゴリの記事投稿の際、「カテゴリ」選択で親カテゴリにもチェックしてテンプレートを反映させる
    • テンプレートタグ<?php if(in_category(‘ID’)): ?>でカテゴリIDを指定する
      (このタグだとカテゴリ追加毎に、IDを指定しないといけないので・・・)
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • <?php
    function in_category_family( $parent ) {
        if ( empty($parent) )
            return false;
    
        if ( in_category($parent) )
            return true;
    
        $parent = get_category($parent);
        foreach ( (get_the_category()) as $child ) {
            $child = get_category($child->cat_ID);
            if ( cat_is_ancestor_of($parent, $child) )
                return true;
        }
    
        return false;
    }
    ?>

    というような関数を作ってみるといいのではないかと思います。

    <?php
    if ( function_exists('in_category_family') && in_category_family(1) )
        echo "この投稿は、カテゴリー 1 か、その子カテゴリのいずれかに属しています。";
    ?>

    この例ですと、テンプレートにおける場合分けの際、
    親カテゴリーのIDだけはどうしても指定する必要がありますので、
    期待されている方法ではないかもしれませんが。

    mizube様、ご返信ありがとうござます。

    さっそく教えていただいた関数をfunctions.phpへ追加し、
    「in_category_family」を、テンプレート呼び出しで使用したらバッチリです!

    子カテゴリーが、親カテゴリーのテンプレートに自動で反映される方法を探していたので、
    これぞ、私が望んでいた方法です!

    本当にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「テンプレートの指定方法」には新たに返信することはできません。