複数タクソノミーに属する投稿数

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

カスタム投稿タイプxxx にタクソノミー type、area、line があり、type のターム a の絞り込み検索で、type のターム a の投稿があるarea のタームを表示して投稿数も表示。

<?php $categories = get_terms('area','hide_empty=1'); foreach ($categories as $category) { ?>
<?php $args = array( 'post_type' => 'xxx',
	'tax_query' => array( 'relation' => 'AND',
		array( 'taxonomy' => 'type', 'field'  => 'slug', 'terms' => 'a'
		),
		array( 'taxonomy' => 'area', 'field' => 'slug', 'terms' => $category->slug
		) )
);
$areacount = new WP_Query($args); if ($areacount->found_posts > 0) { ?>
<li><label><input type="checkbox" class="checkbox" name="area[]" value="<?php echo $category->slug; ?>" /> <?php echo $category->name; ?>(<?php echo $areacount->found_posts; ?>)</label></li>
<?php }} ?>

line は親タームごとに表示するので、

<?php $categories = get_terms('line','parent=0&hide_empty=1'); foreach ( $categories as $cat ) { ?>
<?php $args = array( 'post_type' => 'xxx',
	'tax_query' => array( 'relation' => 'AND',
		array( 'taxonomy' => 'type', 'field'  => 'slug', 'terms' => 'a'
		),
		array( 'taxonomy' => 'line', 'field' => 'slug', 'terms' => $cat->slug
		) )
);
$linecount = new WP_Query($args); if ($linecount->found_posts > 0) { ?><ul>
<li><input type="checkbox" class="checkbox" name="line[]" value="<?php echo $cat->slug; ?>" /> <label><?php echo $cat->name; ?>(<?php echo $linecount->found_posts; ?>)</label></li>
<?php $children = get_terms('rent_line','hierarchical=0&hide_empty=1&child_of='.$cat->term_id); foreach ( $children as $child ) { ?>
<?php $args = array( 'post_type' => 'xxx',
	'tax_query' => array( 'relation' => 'AND',
		array( 'taxonomy' => 'type', 'field'  => 'slug', 'terms' => 'a'
		),
		array( 'taxonomy' => 'line', 'field' => 'slug', 'terms' => $child->slug
		) )
);
$linecount = new WP_Query($args); if ($linecount->found_posts > 0) { ?>
<li><input type="checkbox" class="checkbox" name="line[]" value="<?php echo $child->slug; ?>" /> <label><?php echo $child->name; ?>(<?php echo $linecount->found_posts; ?>)</label></li>
<?php }}} ?></ul><?php } ?>