単一ページのデザインを、属するカテゴリー毎に変更したい場合のメモです。
(カスタムフィールド値を利用する場合など)
in_category を使って(single.php)を条件分岐します(数字はカテゴリーのID)
single.phpの変更したい部分を下記のように記述
<?php if (in_category('6') || in_category('7')): ?> (6・7カテゴリーの場合の内容) <?php elseif (in_category('8') ): ?> (8カテゴリーの場合の内容) <?php else: ?> (その他カテゴリーの場合の内容) <?php endif; ?>
変更部分のコードが長く複雑な場合は、インクルードする方が管理しやすいことも
sample-2.php,sample-3.phpというように別々に作成
<?php if (in_category('6') || in_category('7')): ?> include(TEMPLATEPATH . '/sample-2.php'); <?php elseif (in_category('8') ): ?> include(TEMPLATEPATH . '/sample-3.php'); <?php else: ?> (その他のカテゴリーの場合の内容を記述しておく) <?php endif; ?>
表示を変えたいカテゴリーが1つだけの時は下記の記述でok
<?php if(in_category(5)): ?> カテゴリー 5 に表示する内容 <?php else : ?> (その他カテゴリーの場合の内容) <?php endif; ?>
記述方法はいろいろ・・・下記のように書いてもOK
<?php if(in_category(5)): ?> (カテゴリー 5 に表示する内容) <?php elseif(in_category(array(6,7))) : ?> (カテゴリー 6,7 に表示する内容) <?php else : ?> (その他のカテゴリーの場合の内容) <?php endif; ?>
カテゴリー5も6も7も・・・内容が違う場合
<?php if(in_category(5)): ?> (カテゴリー 5 に表示する内容) <?php elseif(in_category(array(6))) : ?> (カテゴリー 6に表示する内容) <?php elseif(in_category(array(7))) : ?> (カテゴリー 7に表示する内容) <?php else : ?> (その他カテゴリーの場合の内容) <?php endif; ?>