Вывести количество записей рубрики на страницу

Добрый день! Делаю статический список рубрик простыми ссылками, мне так удобнее и так надо. Как на этой же странице динамически вывести количество записей для этих рубрик. Как это можно сделать, чтобы в редакторе просто вставлять в нужном месте шорткоды с указанием ID рубрик?

tunec_vladimir
Оцените автора
Добавить комментарий

  1. tunec_vladimir автор

    Это работает только если код ставить в шаблон, а нужно ставить на страницу в html-редакторе шорткодом.

    Ответить
    1. tiaurus

      Сделайте из кода шорткод.

      Ответить
  2. tunec_vladimir автор

    Делаю функцию для шорткода, вроде все правильно, но почему-то не работает. Посмотрите пожалуйста что в ней не так?

    function number_posts_in_cats($atts){
    extract(shortcode_atts(array(
    "catid" => ''
    ), $atts));
    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 = '$catid' AND post_type = 'post' AND post_status = 'publish'");
    }
    add_shortcode('npic', 'number_posts_in_cats');
    // используем  этот шорткод с указанием ID категории: [npic catid="ID категории"]
    Ответить
  3. tiaurus

    Примерно так:

    function tp_catpostcount($atts) {
        extract(shortcode_atts(array(,
    		"id"     => ''	
    	), $atts));
        $post_count = get_category($id)->category_count;
        $cat_name = get_category($id)->name;
        $cat_slug = get_category($id)->slug;
        return '
        <style>
            .catpostcount {display:inline-block;}
        </style>
        <div class="catpostcount">
            '. $cat_name .' ('. $post_count .')		     
    	</div>  
        ';
    }
    add_shortcode('cpc', 'tp_catpostcount');
    

    Использовать шорткод:

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

    Шорткод выводит результат: Категория (количество постов в категории)
    Можно расширить шорткод, добавив еще вывод текстового описания категории.

    Ответить
  4. tunec_vladimir автор

    Ну все, теперь как часы работает, спасибо.

    Под себя немного переделал, чтобы выводило только цифру — количество постов:

    function tp_catpostcount($atts) {
        extract(shortcode_atts(array(
            "id"     => ''
        ), $atts));
        $post_count = get_category($id)->category_count;
        $cat_name = get_category($id)->name;
        $cat_slug = get_category($id)->slug;
        return ''.$post_count.'';
    }
    add_shortcode('cpc', 'tp_catpostcount');
    //Шорткод [cpc id="ID категории"]
    Ответить