让wordpress标签云显示文章数的正确方法

先看一下效果

在百度经验找到一个教程,可惜,根据实践发现方法是错误的,
百度经验上的代码:

1
2
3
4
5
6
7
8
9
10
11
12
//标签tag所包含的文章数量
function Tagno( $text ) {
$text = preg_replace_callback( '|<a>|i' , 'tagnoCallback' , $text );
return $text ;
}
function tagnoCallback( $matches ) {
$text = $matches [1];
preg_match( '|title=(.+?)style|i' , $text , $a );
preg_match( "/[0-9]/" , $a [1], $a );
return "<a " . $text . "[" . $a [0]. "]" ;
}
add_filter( 'wp_tag_cloud' , 'Tagno' , 1);

加到function.php后,文章数输出倒是能够输出,但页面会发生错误,通过查看源代码可以发现,它的<a>标签都没有封闭,也就是缺少</a>,所以标签云以下的某些部分会出错。
另外,它这个只能正常输出含个位数文章的数量,如果是十位以上,它只会输出文章数的第一位,比如“10篇文章”,它只会输出“[1]”。原因是正则表达式错误,/[0-9]/只会匹配数字一次,应使用/[0-9]+/来匹配所有的数字。
修改后的代码:

1
2
3
4
5
6
7
8
9
10
11
12
//标签tag所包含的文章数量
function Tagno( $text ) {
     $text = preg_replace_callback( '|<a (.+?)</a>|i' , 'tagnoCallback' , $text );
     return $text ;
}
function tagnoCallback( $matches ) {
     $text = $matches [1];
     preg_match( '|title=(.+?)style|i' , $text , $a );
     preg_match( "/[0-9]+/" , $a [0], $b );
     return "<a " . $text . "<span>[" . $b [0]. "]</span></a>" ;
}
add_filter( 'wp_tag_cloud' , 'Tagno' , 1);

代码里将输出的数字加入到标签里,可以细调数字的格式。
本文转载自:http://idlelife.org/archives/404

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值