Я, Кинда, сделал это так
<?php
$posts = get_terms($wp->query_vars["name"]);
$terms = get_terms($wp->query_vars["name"], array(
'hide_empty' => 0,
));
foreach( $terms as $term ) :
wp_reset_query();
$args = array('post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => $wp->query_vars["name"],
'field' => 'slug',
'terms' => $term->slug
),
),
);
$posts = new WP_Query($args);
if( $posts->have_posts() ) : ?>
<h3><?php echo $term->name; ?> - <?php echo $posts->post_count ?></h3>
<?php endif; endforeach; ?>
так что $ posts-> post_count сделали свое дело
Другая проблема в том, что он прячется, когда он пуст, мне нужно показать все, даже пустые