WordPress 彩色标签云

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个,争取去除全部插件都由代码来实现,每去除一个插件,我都会与大家分享我的程序代码。
原文来自于 洒血


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值