Я написал эту функцию, которая почти работает:
function all_animals() {
$categories = get_categories(array(
'echo' => 0,
'hide_empty' => 0,
'taxonomy' => 'species',
'hierarchical' => 1,
'show_count' => 0,
'depth' => 0
)); ?>
<ul>
<?php ob_start();
foreach ($categories as $cat) {
$cat_args = array(
'posts_per_page' => -1,
'post_type' => 'animal',
'showposts' => -1,
'post_status' => 'publish',
'cat' => $cat->cat_ID
);
$the_animals = new WP_Query($cat_args);
$animal_count = $the_animals->post_count;
?>
<li>
<a href="<?php echo get_category_link( $cat->cat_ID ); ?>">
<?php echo $cat->cat_name; ?>
<span class="count"><?php echo $animal_count; ?></span>
</a>
</li>
<?php
}
wp_reset_postdata();
$animal_list = ob_get_clean();
return $animal_list;
echo '</ul>';
}
... а затем я использую его на шаблоне страницы, например:
echo all_animals();
Проблема: Единственное, что не работает, это $animal_count
, который всегда возвращает 0.
Я тоже пробовал это ...
global $wp_query;
$animal_count = $wp_query->found_posts;
... но это не имело значения.
Как я могу это исправить?