Wordpress 免插件实现彩色标签云

在 Wordpress 2.3或更高版本中,“小工具”(widget)就被内置了,但是这些标签颜色一致,看起来总有点不舒服。如果你也这么觉得的话,可以尝试使用Simple Tags或其他类似的插件,但我受万戈的影响,不喜欢用插件,而是喜欢用代码解决。

于是我去网上逛了逛,还真让我找到用代码的方法了!先把以下代码放入主题的functions.php中——

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

然后在你需要的地方(可以复制到sidebar.php里,也可以建一个页面模板)添加以下代码——

<?php wp_tag_cloud('smallest=8&largest=24&number=50'); ?>

这样就行了,注:smallest 表示最小的字体大小(使用最少),largest 表示最大的字体大小(使用最多),number 则表示标签显示的数量。

2010-10-2 P.S.发现代码有问题,已经修改为正确的了!

若无特别说明,本文系原创,遵循 署名-非商业性使用 3.0 (CC BY-NC 3.0) 协议,转载文章请注明来自【闪星空间】,或链接上原文地址:http://shansing.com/read/11/

14 条评论

  1. 我喜欢简洁,不太喜欢把博客弄得华丽,当然这属于技术范畴...

    1. 我是多变的,一会儿追求简洁,一会儿追求华丽!

  2. 你的验证问答还真囧。。

    1. 囧囧更健康~

      1. 我都不想回复了。
        整的那么麻烦

  3. 你的验证问答好拽,哈哈
    不过色彩标签云还是很实用的。

    1. 嗯,很实用,很美观!但不适合用黑白主题的人!

  4. [...]   插件,台湾称为“外掛”,就是辅助的东西。在《Wordpress免插件实现彩色标签云》这篇文章中,我说过我受万戈的影响,喜欢用代码而不是插件,所以我只开启了 Baidu Sitemap Generator 、 Google XML Sitemaps 、 WP-T-Wap 、 WP-Mail-SMTP 这几个插件,并适当地作了一些小改动。 [...]

  5. 提示Parse error: syntax error, unexpected T_STRING in C:\xampplite\htdocs\wordpress\wp-content\themes\goocn\functions.php on line 195
    怎么办????

    1. 你是不是多写了 <?php 和 ?> ?

    2. 已经知道问题并且修改了,请重新复制代码。

  6. 搞定,O(∩_∩)O谢谢!

发表评论»

NO SPAMS! 不要发垃圾评论哦!

表情