メインコンテンツとスタッフブログのデザインがまったく違い、ブログ以下に複数のカテゴリー。メインコンテツも複数のカテゴリーでカテゴリーのトップは固定(なぜページコンテンツにしないかというと、ページコンテンツで親子関係をつけるよりもカテゴリーを選んで投稿するほうが簡単という理由らしい)、という、ワードプレスで組むにはちょっと特殊な構成のサイト。
ブログ以下の子カテゴリーで投稿すればスタッフブログのデザインで表示できるようにブログ用のphpを作成し、
*functions.php に
function in_category_family( $parent ) { if ( empty($parent) ) return false; if ( in_category($parent) ) return true; $parent = get_category($parent); foreach ( (get_the_category()) as $child ) { $child = get_category($child->cat_ID); if ( cat_is_ancestor_of($parent, $child) ) return true; } return false; }
を設定、category.php とsingle.php の冒頭でコンディショナルタグ
<?php if ( function_exists('in_category_family') && in_category_family(1) ) : ?> <?php get_template_part( 'blog' ); ?> <?php else: ?>
として振り分け。
category.php はカテゴリーごとに
<?php if (is_category('xxx')): ?> <?php if (have_posts()) : query_posts('name=xxx'); ?> <?php while (have_posts()) : the_post(); ?> ~ <?php endwhile; endif; ?> <?php wp_reset_query(); ?>
として、読み込む投稿をスラッグで指定。カテゴリーのトップを差し替えるときはスラッグを付け替えてもらうことに。