自己写simpleblog程序的时候做过一个彩色的标签云,所以想自己写一个用到wordpress里面,后来发现网上这样的代码很多,就找了段现成的。
修改了mystique主题的widgets模板文件 ~/wp-content/themes/mystique/lib/widgets.php
可以看到重点是wordpress的这个方法add_filter(‘wp_tag_cloud’, ‘colorCloud’, 1),我没做过wordpress开发,对这个不熟啦,
但是联想了一下Servlet的filter机制,对这个函数的理解也八九不离十啦,能用了。

<div class="tag-cloud">
<!--Colorful tag cloud -->
<?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);

?>
<!--end -->
<?php wp_tag_cloud(apply_filters('widget_tag_cloud_args', array())); ?>

</div>

mystique主题的中文翻译有问题,下载了个poedit修改了一下zh_CN.po文件,这个工具蛮方便的,能自动生成mo文件,自己更新一下主题下的mo文件就行了
~/wp-content/themes/mystique/lang/
zh_CN.mo
zh_CN.po