WordPress获取指定标签下的文章总数

        我们在开发 WordPress主题时需要获取到指定标签的文章总数该怎么实现呢?最近在给客户的 WordPress 主题做多条件筛选的时候,需要通过当前分类法下是否有文章,如果有则显示,如果没有就不显示,所以需要获取指定分类法(不是分类)下的文章总数。我们需要在其后面显示此标签下共有多少文章做个统计,这并不像统计分类下的文章总数那么简单,我们需要定义 function 函数再调用具体效果看下图。

WordPress获取指定标签下的文章总数
WordPress获取指定标签下的文章总数

目录

方法一:根据标签 ID 获取文章总数:

方法二:根据标签别名获取文章总数:

方法三:通过 get_terms()函数先获取


下面分享 3 种获取到某个标签的文章总数的方法:

方法一:根据标签 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()函数先获取

        这个可以通过 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热门标签显示文章数量等自定义功能

        只要使用下面的代码函数,复制到相应的位置就可以出现以 a 链接为开头的 15 个按文章量排序的热门标签。

<?php wp_tag_cloud( array ( 'unit' => 'px', 'order' => 'RAND','taxonomy' => '', 'number' => 15 ,'hide_empty' => false) ); ?>

当然如果你想自定义标签的默认代码,可以通过以下的代码来调用,下面的代码中显示了标签的文章数量,以及可以自定义标签前后的代码样式,很方便。

<?php
$tags_list = get_tags( array('number' => '18772', 'orderby' => '', 'order' => 'DESC', 'hide_empty' => false) );
shuffle($tags_list); 
$count=0; 
if ($tags_list) {
 foreach($tags_list as $tag) {
 $count++;
 echo '<a title="' . $tag->count . '个话题" href="'.get_tag_link($tag->term_id).'" target="_blank" rel="noopener noreferrer">'.$tag->name.'</a>';
 if( $count >20 ) break;
 }
}
?>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值