情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・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 } ?>