wordpress拥有强大的标签云函数,通过wp_tag_cloud函数,可以定义自己的标签群效果,例如,标签字号大小,标签排列方式,标签的筛选,但唯一不能做的,就是定义标签的颜色,定义标签的颜色很简单,采用一个随机函数rand()即可以达到,不同标签不同颜色的效果,当然也可以把一些自己认为很好的颜色定义到数组,通过数组进行随机组色,下面是从网络上搜索得到的结果,代码写的很简洁。
通过rand函数实现随机颜色值:
<?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);
?>
第8行代码
$color=dechex(rand(0,16777215));
作用是定义标签随机颜色的十进制数值范围,0 等于 #000000,16777215 等于 #ffffff。你可以使用进制换算工具换算后修改这行代码,改变颜色范围。
在主题需要的地方加入以下代码:
<?php wp_tag_cloud(); ?>
通过数组自定义颜色"
function colorCloudCallback($matches) {
$tag_link=$matches[1];
$colorFull = array(‘#999′,’#D8D9A4′,’#9BB’,'#EB9′,’#a3c159′,’#FEC42D’,'#6C8C37′,
‘#c2dc15′,’#3371A3′,’#888′,’#00ccff’,'#FF8080′);
$color=$colorFull[ mt_rand(0, count($colorFull) - 1)];
$pattern = ‘/style=(\’|\”)(.*)(\’|\”)/i’;
$tag_link= preg_replace($pattern, “style=\”color:{$color};$2;\”", $tag_link);
return “<a $tag_link>”;
}
add_filter(‘wp_tag_cloud’, ‘colorCloud’, 1);
在主题需要的地方加入以下代码:
<?php wp_tag_cloud(); ?>
就这样,一个标签云就实现了,不需要你安装任何插件,代码大小1-2K左右,最后说一点关于rand()随机数与数组方面的知识,rand()在速度执行上,要慢于数组。大家可以实战一下。
题外话:wordpress是一个很好的博客系统,简单是我选择他最为主要的原因。在执行速度上受制于一些插件,近期打算好好优化一下我的博客,插件由原来10多个的基本上,缩减到2-3个,争取去除全部插件都由代码来实现,每去除一个插件,我都会与大家分享我的程序代码。
原文来自于 洒血