このエントリーをはてなブックマークに追加

タクソノミーAの一覧で投稿をタクソノミーBで分類して、タクソノミーBのタームごとに、投稿があればターム名を見出しとして投稿リストを表示

<?php $item_slug = get_query_var('a');
$categories = get_categories('taxonomy=b');
foreach($categories as $category) :
?>
<?php
$args = array(
	'tax_query' => array( 
		array(
			'taxonomy'=>'b',
			'terms'=>array( $category->cat_ID ),
			'field'=>'id',
			'operator'=>'IN'
			),
		array(
			'taxonomy'=>'a',
			'terms'=>$item_slug,
			'field'=>'slug',
			'operator'=>'IN'
			),
		'relation' => 'AND'
		)
);
$query = new WP_Query( $args );
?><?php if($query->have_posts()): ?>
<h1><?php echo $category->cat_name; ?></h1>
<ul>
<?php while($query->have_posts()): $query->the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php endforeach; ?>

親タームだけを表示したい場合は if(!$category->parent && $query->have_posts()): とする。

2013.01.20 投稿 2015.04.05 更新

新しい情報を追記している場合はありますが、古い情報の修正はしていません。投稿日・文中の日付を参照してください。

Recent Articles