サポート » 使い方全般 » 「カテゴリー毎に別テンプレートを読み込ませる」について

  • 解決済 ryokucha_power

    (@ryokucha_power)


    初歩的な質問で恐縮ですが、ご教授ください。

    現在、下記の様な階層になっており、

    大カテゴリーA
    ├サブカテA1
    ├サブカテA2
    └サブカテA3

    大カテゴリーB
    ├サブカテB1
    └サブカテB2

    カテゴリーAとBではテンプレートを使用したいので、category.phpに

    <?php
    $post = $wp_query->post;
    $category = get_the_category( $post->ID );
    $cat = $category[0];
    while ( $cat->parent > 0 )
    $cat = get_category( $cat->parent );

    if ( ‘2’ == $cat->term_id ) {
    include(TEMPLATEPATH . ‘/category-A.php’);
    } else {
    include(TEMPLATEPATH . ‘/category-B.php’);
    }
    ?>

    という記述をしています。

    サブカテA3には、まだ投稿記事がない状態なのですが、サブカテA3を表示すると何故かカテゴリーBの方のテンプレート(category-B.php)が表示されてしまいます。
    ※投稿のあるサブカテA1、A2はキチンとcategory-A.phpで表示される。

    解消方法がわかる方、教えてください。
    よろしくお願いします。

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

    (@hissy)

    投稿記事が無いので、 $post = $wp_query->post の返り値が空になっているのだと思います。未検証ですがたぶんこれで解決します。

    $obj = $wp_query->queried_object;
    $cat = get_category( $obj->term_id );
    while〜

    トピック投稿者 ryokucha_power

    (@ryokucha_power)

    hissy様

    無事に、希望通りの動作をするようになりました。
    ありがとうございます!

    また、
    >投稿記事が無いので、 $post = $wp_query->post の返り値が空になっているのだと思います。
    原因まで教えていただき、本当にありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「「カテゴリー毎に別テンプレートを読み込ませる」について」には新たに返信することはできません。