无插件实现 wordpress 彩色标签云效果

LMS
2.2K+ 27

一、随机颜色

将以下代码放入主题包 functions.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。你可以使用进制换算工具换算后修改这行代码,改变颜色范围。

在主题需要的地方加入以下代码:

wp_tag_cloud('smallest=8&largest=24&number=50'); 

代码说明:

  • “smallest”:最小的字体尺寸(使用频率最少的标签)
  • “largest”:最大的字体尺寸(频率最多的)
  • “number”:则表示标签显示数量。

KO!

from:http://hezi.info/share/wordpress/wordpress-colore-tag.html

二、自定义颜色

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

from:http://mcooo.com/

THE END

评论 27

  1. 用了 这个方法,页面先死505 报错。。。
    知道怎么处理嘛? 多谢了。

    1. 代码里面的符号都是全角的,你用的时候要换成半角英文符号。

      1. 我在想办法 恢复,现在也会蹦出 500 错误。。

  2. 不错,代码测试有效.

  3. 用上了!!!谢谢啦!

    1. 有用就好,你的博客主题好强大!

      1. 不管我的事哟!

        都是 知更鸟 惹的“祸”!

        1. 看起来你把它弄的更复杂了哦。

          1. 呵呵!没事瞎折腾!不过好像影响速度!

            1. 还好,可以接受,就是进去后不知道点哪里。 :mrgreen:

  4. 过来看看,这个方法不太行,可能是我的主题的问题……

    1. 你是出什么问题呢,这个方法我用过,也给别人用过,没发现什么问题啊

      1. 我主题的问题,我看了看,他可能将函数的功能改了……主题制作的稍微有些差!不过外观不错!哈哈!

  5. heson
    🏅

    :twisted: 原来用过 搞忘记方法了 过来再看看``````

  6. 双陈记
    🏅

    好方法,不过我用了之后,边栏上的3dflash的标签云就出问题了,字体很大的,请高手帮帮忙 :cry:

    1. 看文章中的代码说明:把最大最小字体都改小。

  7. 方圆剑
    🏅

    为了表示感谢 点击了你两个广告

  8. mcooo
    🏅🏅

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

    有可以自己选的啊,这是我用的。。。 :idea:

  9. mcooo
    🏅🏅

    这个选不了自己的颜色!

    1. 是随机的,有可以自己选颜色的吗?

  10. 万戈
    🏆🏅

    好方法,可惜不适合我的黑白主题

    1. 换邮件地址了吧,居然要审核。。。

发表评论

Submit