1 2 3 4 5 6 7 8 9 10 11 12 13 | function colorCloud($text) { $text = preg_replace_callback('||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 "$text>"; } add_filter('wp_tag_cloud', 'colorCloud', 1); |
$color = dechex(rand(0,16777215)); 的意思是随机取一个颜色代码,可以自己填写颜色范围。0表示#000000,16777215表示#ffffff,可以用十进制转换的工具转换。 add_filter('wp_tag_cloud', 'colorCloud', 1); 表示用colorClound取代默认的wp_tag_cloud,优先级是1. 粘贴好后,直接在主题的小工具里面,拖出标签云,就可以看到效果了。 2.自定义颜色 上面的方法是随机产生颜色,也可以自己定义颜色,把上面的代码换成:
1 2 3 4 5 6 7 8 9 | 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 “”; } add_filter(‘wp_tag_cloud’, ‘colorCloud’, 1); |
从小工具中脱出标签云就可以使用了。
但是这两种方法都没法改字体大小,看了一下官方的wp_tag_cloud()函数的用法,可以在\wp-includes\category-template.php文件中,找到wp_tag_cloud()函数的具体代码,可以修改里面的格式。默认的代码是这样的:
1 2 3 4 5 6 7 8 | function wp_tag_cloud( $args = '' ) { $defaults = array( 'smallest' => 10, 'largest' => 25, 'unit' => 'pt', 'number' => 45, 'format' => 'flat', 'separator' => "\n", 'orderby' => 'name', 'order' => 'ASC', 'exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'post_tag', 'echo' => true ); ....//以下省略 |
smallest:用的最少的标签的字体大小,单位为pt;
largest:用的最多的标签的字体大小,单位为pt;
unit:字体的默认单位,这里是pt,可用px,em,%;
number:显示的标签的最大数量,默认是45;
format:定义标签的表现形式,‘flat’标签间空格,‘list’ 标签置于一个类名为wp-tag-cloud的无序列表中,‘array’ 标签保存在数值中;
separator:分割符,这里是换行;
orderby:标签的排序,‘name’按名称排序,‘count’按使用次序排序;
order:标签的排序方式,‘ASC’升序,‘DESC’降序;
exclude:排除用逗号(半角)分隔的一列标签(term_id)。例如, 'exclude=5,27' 意味着term_id为5或27的标签将不会显示。默认不排除如何标签。
include:包含用逗号(半角)分隔的一列标签。例如,'include=5,27'意味着只有term_id为5或者27的标签将显示。默认包含如何标签。
更多用法请查看官方文档:http://codex.wordpress.org.cn/Function_Reference/wp_tag_cloud
>> 若为原创,转载请注明: 转载自Laycher's Blog
>> 本文链接地址: 纯代码实现彩色标签云,可修改字体大小
>> 订阅本站: http://feed.feedsky.com/laycher
我用第一个代码框里面的东东, 需要去掉11和14行的两个
</a>
确实是的,保存就自动加上去了,估计又是这个插件的自动纠错功能弄的。。
无论如何还是实现了彩色标签, 而且我觉得标签分散对齐更好看点.