WordPress自带的标签云只有一个颜色,很难看,无意中逛别人博客的时候发现别人都有彩色标签云,很好奇是怎么实现的。上网搜了一番,有了解决方案,不敢独享,拿出来分享:
在wp后台——>主题编辑——>在function.php文件中添加如下代码:
function colorCloud($text) {
$text=preg_replace_callback(‘|<a (.+?)>|i’,‘colorCloudCallback’,$text);
return $text;
}
function colorCloudCallback($matches) {
$text=$matches[1];
$color=dechex(rand(0,16777215));
$pattern=‘/style=(\’|\”)(.*)(\’|\”)/i’;
$text=preg_replace($pattern,“style=\”color:#{$color};$2;\”“,$text);
return“<a $text>”;
}
add_filter(‘wp_tag_cloud’,‘colorCloud’,1);
(注:以上代码所有权归原作者所有,本博只转载学习之用,如有不妥请指出,本博在3日之内删除)
颜色是随机的,可以自行修改 $color=dechex(rand(0,16777215)); 这行来修改颜色范围,保存修改,你就可以看到如本博首页边栏或者下面截图所示那样色彩斑斓的标签云啦!

不需要安装任何插件的,是不是很强大啊~
这里有一个问题,不知道大家发现没有?就是默认的是它是按照名字来排序的,所以汉字的标签们无一例外的都被挤到了最后,貌似很丑。不过没有关系,可以通过修改默认参数来改变的:
在web/wp-includes目录下找到php文件category-template.php,在这个文件中有这样的一段代码:
function wp_tag_cloud( $args = '' ) {
$defaults = array(
'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
'format' => 'flat', 'separator' => "\n", 'orderby' => 'name', 'order' => 'ASC',
'exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'post_tag', 'echo' => true
);
这段代码就是自带的标签云函数的调用代码的默认参数设定,大概意思就是标签的字体大小范围从8pt到22pt,一共显示45个,格式为flat(平铺)显示,这里最重要的是它默认的是以名字升序排序('orderby' => 'name', 'order' => 'ASC'),这就是造成所有的汉字标签都一股脑儿挤到最后的原因了。
我们只要将其改为'orderby' => 'count', 'order' => 'DESC',让它按照出现的次数降序排列,这样做还有一个好处就是在避免了所有汉字标签扎堆的同时能把你博客当中最热得标签(tag)以最大的字号显示在最前面,更符合常理,至于显示标签的字体大小范围和个数,大家可以按照自己要求做相应的修改。这是修改后的,是不是比上一张好多了?

博主是个女生吧,用这么卡哇伊的颜色?
还不错,学习了!