我们在开发 WordPress 主题时需要获取到指定标签的文章总数该怎么实现呢?最近在给客户的 WordPress 主题做多条件筛选的时候,需要通过当前分类法下是否有文章,如果有则显示,如果没有就不显示,所以需要获取指定分类法(不是分类)下的文章总数。我们需要在其后面显示此标签下共有多少文章做个统计,这并不像统计分类下的文章总数那么简单,我们需要定义 function 函数再调用具体效果看下图。
下面分享 2 种获取到某个标签的文章总数的方法:
根据标签 ID 获取文章总数:
/*
根据标签ID获取文章总数
*/
function get_tag_post_count_by_id( $tag_id ) {
$tag = get_term_by( 'id', $tag_id, 'post_tag' );
_make_cat_compat( $tag );
return $tag->count;
}
调用方法:
在需要获取标签文章总数的地方添加以下代码:
//根据标签ID获取文章总数
<?php echo get_tag_post_count_by_id( $tag_id ) ?>
根据标签别名获取文章总数:
//根据标签别名获取文章总数
function get_tag_post_count_by_slug( $tag_slug ) {
$tag = get_term_by( 'slug', $tag_slug, 'post_tag' );
_make_cat_compat( $tag );
return $tag->count;
}
调用方法:
在需要获取标签文章总数的地方添加以下代码:
//根据标签别名获取文章总数
<?php echo get_tag_post_count_by_id( $tag_slug ) ?>
上面我们通过两个小函数就可以实现通过标签 ID 或者标签的别名来取得所指定标签下的文章数量了。
这个可以通过 get_terms()函数先获取出来该分类法下所有的分类信息,然后通过循环并求和返回值 count,得到该分类法下所有文章总数,具体实现方法是,把下面的代码放到您的 functions.php 中:
//获取指定分类法下文章总数
function mx_get_taxonomy_postcount($taxonomy) {
$terms = get_terms( array(
'taxonomy' => $taxonomy,
'hide_empty' => true,
) );
foreach ($terms as $term) {
// 子孙分类文章数累加
$count +=$term->count;
}
return $count;
}
然后在使用的地方使用可以直接显示该分类法下的文章总数,希望对您有所帮助。
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!