有什么方法可以统计类别中的帖子?

时间:2019-04-05 11:00:49

标签: php wordpress function

我的网站上有近500个类别。我想添加一个功能来统计每个类别中的帖子。由于类别太多,我无法尝试为每个类别代码添加帖子ID或名称。我需要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 :(得分:0)

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');

取自here。一个简单的谷歌搜索会给你答案!

如果您使用的是the_category()函数,则需要过滤该函数的帖子计数。 This answer在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;
}

答案 1 :(得分:0)

如果您使用的是默认类别,则可以尝试以下操作:

 $categories = get_the_category();

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

$ Categories将是猫对象的数组。因此,如果它不为空,那么您将能够访问每只猫并检索它的道具。