Wordpress 免插件实现彩色标签云

在 Wordpress 2.3 或更高版本中,“小工具”(widget)就被内置了,但是这些标签颜色一致,看起来总有点不舒服。如果你也这么觉得的话,可以尝试使用 Simple Tags 或其他类似的插件,但我受万戈的影响,不喜欢用插件,而是喜欢用代码解决。

于是我去网上逛了逛,还真让我找到用代码的方法了!先把以下代码放入主题的 functions.php 中——

<?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);
?>

然后在你需要的地方(可以复制到 sidebar.php 里,也可以建一个页面模板)添加以下代码——

<?php wp_tag_cloud('smallest=8&largest=24&number=50'); ?>

这样就行了,注:smallest 表示最小的字体大小(使用最少),largest 表示最大的字体大小(使用最多),number 则表示标签显示的数量。

2010-10-2 P.S.发现代码有问题,已经修改为正确的了!

全部为采集文章,文中的 联系方式 均不是 本人 的!

发表评论