纯代码实现WordPress彩色标签云

分类一样,都是文章的分类方式,通过标签可以更加灵活的组织文章,但文章数量大时,更显得重要。(参看小众软件按Tag浏览)。正由于标签如此重要,许多人为Wordpress开发了标签功能增强插件,包括许多美化插件。相比于拖慢网页载入速度的Flash动态标签云,彩色标签云显得更为实用,也不乏美观。

实现彩色标签云,可以使用插件WP Colorful Tag Cloud。但出于网页加载速度考虑,能不用插件就不用插件,下面介绍代码实现方法.
将以下代码插到主题下function.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);

  5Comments

  1. 潇遥   •  

    O(∩_∩)O哈哈~ 搞成彩色确实好看多了,我还想把其它东西也设置成彩色

  2. 尽享网   •  

    这个我还知道,就是会不会整个动态的标签云呢?

    • Jeriff Cheng   •     Author

      前几年WordPress独立博客圈流行动态的Flash标签云,后来因为SEO问题,一个个都放弃了。Google无法抓取Flash里面的内容(貌似现在可以抓取部分,但是效果不好),不如文字标签好。

  3. hx   •  

    太强大了。!这个很给力呀!
    其实很不解这个地方为什么是用“1”。。。只能蒙着头复制着用。差距- -!
    add_filter(‘wp_tag_cloud’, ‘colorCloud’, 1);

    • Jeriff Cheng   •     Author

      这个数字表示 优先级
      这是一个可选的参数,默认值为10。由于可以把多个函数注册到同一个动作,所以这个参于是用于指定注册到这个动作中的这个函数执行的优先级,数字越小优先级越高,执行得也越早,反之亦然。如果若干个函数以相同的优先级注册到同一个动作,那么执行顺序则是由它们注册的先后顺序所决定。

Leave a Reply

Your email address will not be published. Required fields are marked *