Press "Enter" to skip to content

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

Last updated on 2016年04月9日

一、随机颜色

将以下代码放入主题包 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/

27 Comments

  1. 万戈
    万戈 2010年04月1日

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

    • LMS
      LMS 2010年04月1日

      @万戈 换邮件地址了吧,居然要审核。。。

  2. mcooo
    mcooo 2010年04月12日

    这个选不了自己的颜色!

    • LMS
      LMS 2010年04月12日

      @mcooo 是随机的,有可以自己选颜色的吗?

  3. mcooo
    mcooo 2010年04月12日

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

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

    • LMS
      LMS 2010年04月12日

      @mcooo 太强大了,谢谢分享! 😮

  4. 方圆剑
    方圆剑 2010年04月22日

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

  5. 双陈记
    双陈记 2010年10月2日

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

    • LMS
      LMS 2010年10月8日

      @双陈记 看文章中的代码说明:把最大最小字体都改小。

  6. heson
    heson 2010年11月18日

    😈 原来用过 搞忘记方法了 过来再看看“““

  7. 奚少
    奚少 2010年11月30日

    拿走分享一下,嘿嘿~

  8. 第二纪元
    第二纪元 2011年02月28日

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

    • LMS
      LMS 2011年03月1日

      @第二纪元 你是出什么问题呢,这个方法我用过,也给别人用过,没发现什么问题啊

      • 第二纪元
        第二纪元 2011年03月1日

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

  9. JaCall
    JaCall 2011年03月4日

    用上了!!!谢谢啦!

    • LMS
      LMS 2011年03月4日

      @JaCall 有用就好,你的博客主题好强大!

      • JaCall
        JaCall 2011年03月4日

        @LMS 不管我的事哟!

        都是 知更鸟 惹的“祸”!

        • LMS
          LMS 2011年03月4日

          @JaCall 看起来你把它弄的更复杂了哦。

          • JaCall
            JaCall 2011年03月4日

            @LMS 呵呵!没事瞎折腾!不过好像影响速度!

            • LMS
              LMS 2011年03月4日

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

  10. Dark
    Dark 2012年11月14日

    不错,代码测试有效.

  11. 淮海巷
    淮海巷 2013年06月28日

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

    • LMS
      LMS 2013年06月28日

      @淮海巷 代码里面的符号都是全角的,你用的时候要换成半角英文符号。

      • 淮海巷
        淮海巷 2013年06月28日

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

  12. 易米
    易米 2014年03月9日

    你右边的样式不错!

发表评论

电子邮件地址不会被公开。 必填项已用*标注