先看一下效果
在百度经验找到一个教程,可惜,根据实践发现方法是错误的,
百度经验上的代码:
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