Вывести количество записей рубрики WordPress с помощью кода в шаблоне или шорткода на странице

12 февраля 2013 | Автор: Дунин Владимир

Иногда требуется организовать статический список рубрик, а количество записей в каждой рубрике выводить динамически. Я знаю два варианта как это сделать: выводить количество записей конкретной рубрики в шаблоне страницы, либо на странице в визуальном редакторе с помощью шорткода. Второй вариант я считаю более предпочтительным, т.к. с помощью шорткода мы вызываем только одну функцию, в то время как код первого варианта нам приходится вставлять целиком каждый раз там, где хотим выводить количество. Но здесь приведу коды обоих вариантов:

Вариант для вставки в шаблон. В нужном месте этот код можно поместить в тег <span> и задать ему свое форматирование:

<?php echo $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id = 'номер ID категории' AND post_type = 'post' AND post_status = 'publish'"); ?>

Следующий вариант позволяет выводить цифру – количество записей рубрики – с помощью шорткода:

function tp_catpostcount($atts) {
extract(shortcode_atts(array(
"id" =&gt; ''
), $atts));
$post_count = get_category($id)-&gt;category_count;
$cat_name = get_category($id)-&gt;name;
$cat_slug = get_category($id)-&gt;slug;
return ''.$post_count.'';
}
add_shortcode('cpc', 'tp_catpostcount');

Этот код нужно поместить в файл function.php темы оформления, а на страницах разместить в нужном месте шорткод:

[cpc id="ID категории"]

Данный шорткод также можно помещать в свои теги и задавать ему форматирование.