WordPress Tips
テンプレートタグを「どんな目的で、どのように」記述しているか、実際に使用しているタグのTips集です。記述ミスがありましたらご容赦ください。
記事別にテンプレートの使用を指定する
CATEGORY :
テンプレートタグ使用例 | UPDATE : 2008.10.17
例えばカテゴリー1〜5の記事は、category.php のテンプレートですべて表示できます。カテゴリー1の記事だけデザインを変えたいときは category-1.php を用意します。カテゴリー1と2を同じデザインで変えるときは、同じ記述内容の category-1.php と category-2.php を用意すれば可能ですが、PHPを無駄に増やしてしまいます。
また「WordPressのツボ」のように、カテゴリーとシングルのリンクメニューを設置すると、クリックによって category.php と single.php または index.php が使い分けられます。
こんな時は include を使ったテンプレートタグで、カテゴリー別にテンプレートを指定します。
1 : 最上位階層のテンプレートに記述
下のテンプレートタグを index.php、category.php、single.php の中で、最も早く適応されるテンプレートの <head> の上に記述します。
■特定のテンプレートを指定するタグの記述
<?php if(in_category('1'))
{ include (TEMPLATEPATH . '/abcd.php'); return; }
?>
※カテゴリー1に属する記事が、カテゴリーページとシングルページで abcd.php のテンプレートを使用します。
複数のカテゴリーに適応させるには || で区切りを入れて、カテゴリーの数だけ記述します。
■特定のテンプレートを複数のカテゴリーに指定するタグの記述
<?php if(in_category('1')||in_category('2')||in_category('3'))
{ include (TEMPLATEPATH . '/abcd.php'); return; }
?>
※カテゴリー1、2、3に属する記事が、カテゴリーページまたはシングルページで表示する場合 abcd.php のテンプレートを使用します。
2 : もっと複雑にテンプレートを指定する
同じ記事をカテゴリーページとシングルページで、別々のテンプレートを使いデザインを変えて表示したい時は if で条件分岐させます。
■特定のテンプレートを別々に指定するタグの記述
<?php if(is_category('1'))
{ include (TEMPLATEPATH . '/abcd.php'); return; }
?>
<?php if(is_single()&&in_category('1'))
{ include (TEMPLATEPATH . '/efgh.php'); return; }
?>
※カテゴリー1に属する記事が、カテゴリーページは abcd.php のテンプレートを使用。シングルページでは efgh.php を使用します。
複数のカテゴリーに適応させるには、上と同じように || で区切りを入れて、カテゴリーの数だけ記述します。