Есть ли способы подсчета постов по категориям? - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть около 500 категорий на моем веб-сайте.Я хочу добавить функцию для подсчета сообщений в каждой категории.Поскольку категорий слишком много, я не могу попытаться добавить идентификатор или имя сообщения в код каждой категории.Мне нужно WordPress, чтобы сделать это автоматически для каждой категории.Можете ли вы показать мне, как это сделать?

{

                    <a href="<?php echo $collection_link; ?>">
                        <h5 class="text-center card-title">
                            <?php the_category(); ?>
                        </h5>
                    </a>
                    <a href="<?php echo $collection_link; ?>">
                        <p class="text-center d-flex justify-content-center card-text">
                            <?php //this is where post count should be displayed ?>
                        </p>
                    </a>

                </div><!-- end card-body -->}

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

если вы используете категории по умолчанию, то вы можете попробовать это:

 $categories = get_the_category();

if ( ! empty( $categories ) ) {
    foreach( $categories as $cat ){
        echo $cat->name . " " . $cat->count;
    }   
}

$ Категории будут массивом объектов cat. Так что, если он не пустой, вы сможете получить доступ к каждому коту и получить его реквизиты.

0 голосов
/ 05 апреля 2019
function count_cat_post($category) {
if(is_string($category)) {
    $catID = get_cat_ID($category);
}
elseif(is_numeric($category)) {
    $catID = $category;
} else {
    return 0;
}
$cat = get_category($catID);
return $cat->count;
}

// Usage
echo  count_cat_post('1');
echo  count_cat_post('General');

Взято из здесь . Простой поиск в Google дал бы ваш ответ!

Если вы используете функцию the_category(), вам необходимо отфильтровать количество сообщений в этой функции. Этот ответ в посте на WordPress Stack Exchange объясняет, как это сделать. Обратите внимание, что функция the_category() на самом деле просто echo get_the_categories();, поэтому фильтр в связанном ответе должен работать для вас.

Для полноты вот код из ответа, связанного выше.

add_filter('get_the_categories', 'wpse50876_the_counter');

function wpse50876_the_counter($cats){
    foreach($cats as $cat){
        $cat->cat_name = $cat->cat_name.'('.$cat->count.')';
    }
    return $cats;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...