Мой план состоит в том, чтобы отображались только категории первого уровня с общим количеством сообщений не только, но и с дочерними категориями.
Я задал несколько вопросов и ответов по этому поводу, но ни один из них на самом деле не отвечает решению. Например, здесь ниже приведено одно решение, показывающее неправильный результат, когда сообщение находится в нескольких подкатегориях или выбрана родительская и дочерняя категории
function wp_get_cat_postcount($id) {
$cat = get_category($id);
$count = (int) $cat->count;
$taxonomy = 'category';
$args = array(
'child_of' => $id,
);
$tax_terms = get_terms($taxonomy,$args);
foreach ($tax_terms as $tax_term) {
$count +=$tax_term->count;
}
return $count;
}
Редактировать: показать использование
Я на самом деле запрашивая все родительские категории и затем пытаясь использовать эту функцию, чтобы получить количество сообщений для каждой родительской категории. Вот использование функции выше.
$args = array(
'hide_empty' => true,
'parent' => 0,
'orderby' => 'count',
'order' => 'DESC'
);
$cats = get_categories($args);
if ( is_array($cats) && !empty($cats) ) {
echo '<ul class="cat-nav" id="cat-nav">';
foreach ( $cats as $cat ) {
if($cat_type->count > 0){
echo '<li>' . $cat->name . '<span class="post-count">'.wp_get_cat_postcount($cat->term_id).'</span></a></li>';
}
}
echo '</ul>';
}