【WP】single.phpをカテゴリ毎に分ける方法
カテゴリーページや固定ページなどは、テンプレート階層に基づき、スラッグやidでテンプレートファイルを振り分けることが出来ます。
例:page-{slug}.php、category-{id}.php 等
しかし、single.phpは投稿タイプごとの振り分けは可能ですが、カテゴリー別にスラッグやidでテンプレートファイルを振り分けることは出来ません。
そこで、カテゴリ毎にsingle.phpの表示を分けるには、条件分岐を利用します。
用意するファイル
single.php
single-a.php (任意のカテゴリーa)
single-b.php (任意のカテゴリーb)
single-default.php (カテゴリーa、カテゴリーbどちらにも属さない場合)
single.php に条件分岐を記述
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php get_header(); ?> <?php if (in_category('a')) { include(TEMPLATEPATH.'/single-a.php'); } elseif ( in_category('b')) { include(TEMPLATEPATH.'/single-b.php'); } else { include(TEMPLATEPATH.'/single-default.php'); } ?> <?php get_footer(); ?> |
複数のカテゴリーに同じテンプレートファイルを適用する場合
1 2 3 4 5 6 7 8 9 |
<?php if (in_category(array('a','c'))) { include(TEMPLATEPATH.'/single-a.php'); } elseif ( in_category('b')) { include(TEMPLATEPATH.'/single-b.php'); } else { include(TEMPLATEPATH.'/single-default.php'); } ?> |