サポート » 使い方全般 » single.phpによるカテゴリごとのページ振り分けに関して質問です

  • 解決済 silver_kir

    (@silver_kir)


    カテゴリごとによるsingle.phpの振り分けに関して質問させてください。
    現在下記のような形式でsingle.phpを振り分けております。

    <?php
    		$post = $wp_query->post;
    		if (in_category('news')||in_category('event')) {
    		include(TEMPLATEPATH . '/single1.php');
    		} else if (in_category('shopinfo')) {
    		include(TEMPLATEPATH . '/single2.php');
    		} else {
    		include(TEMPLATEPATH . '/single0.php');
    		}
    		?>

    この際、例えば“shopinfo”カテゴリに子カテゴリや孫カテゴリがあるとそのカテゴリは“single2.php”ではなく該当なしの“single0.php”で表示されてしまいます。
    これを“single2.php”で表示させるにはどのような記述が必要となるでしょうか?
    子カテゴリや孫カテゴリはBlogのように随時増える形を考えておりますので直接個別に指定するのではなく、子カテゴリや孫カテゴリを自動的に含める方法を探しております。

    解決法などご存じの方、よろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • in_category()は配列を受け付けるので、カテゴリ数が決まっている場合は決めうちしちゃった方が楽です(増える可能性がある場合は別ですが)。

    http://wpdocs.sourceforge.jp/テンプレートタグ/in_category

    またwp3.0以降、
    include(TEMPLATEPATH . '/single0.php');
    という使い方は非推薦になりました。代わりに:
    get_template_part( $slug, $name );
    という関数が用意されているので、そちらを使う事をお勧めします。

    トピック投稿者 silver_kir

    (@silver_kir)

    ご提示していただいたリンク先の方法で無事解決いたしました。
    ありがとうございます。

    get_template_part( $slug, $name );
    >という関数が用意されているので、そちらを使う事をお勧めします。
    非推奨になっていたのは気がついておりませんでした。
    今後利用を切り替えていこうと思います。
    ご指摘ありがとうございます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「single.phpによるカテゴリごとのページ振り分けに関して質問です」には新たに返信することはできません。