我的网站上有近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 -->}
答案 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将是猫对象的数组。因此,如果它不为空,那么您将能够访问每只猫并检索它的道具。