タクソノミーAの一覧で投稿をタクソノミーBで分類する

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

タクソノミー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()): とする。

コメントは受け付けていません。