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