小坤坤和小露露的情侣博客

不用插件实现WordPress彩色标签云(也就是本站现在所使用的标签云)

小坤坤 发表于: 二月 21st, 2010 | 阅读: | 评论数: (1)

无意当中看到一个标签云的函数 于是试着修改了下 让其使用出来是彩色的,具体方法如下:

标签云用到的函数是

  1. <?php wp_tag_cloud(); ?>

有以下几个主要参数:

smallest:最小字体,默认为8
largest:最大字体,默认为22
unit:字符大小的单位(例如pt,px,em),默认为pt
number:显示标签个数(为0时显示所有标签),默认为45
format:显示方式,flat(默认,以空格分隔)
以上各参数以”&”符号连接.不必都填,不填的参数以默认值为准.
根据上面的参数,调用标签云可以像这样:

  1. <?php wp_tag_cloud(‘number=50&largest=24&smallest=12&unit=px’); ?>

实现彩色标签云的函数

  1. //彩色标签云函数开始
  2. function colorCloud($text) {
  3. $text = preg_replace_callback(‘|<a (.+?)>|i’, ‘colorCloudCallback’, $text);
  4. return $text;
  5. }
  6. function colorCloudCallback($matches) {
  7. $text = $matches[1];
  8. $color = dechex(rand(0,16777215));
  9. $pattern = ‘/style=(\’|\”)(.*)(\’|\”)/i’;
  10. $text = preg_replace($pattern, “style=\”color:#{$color};$2;\”", $text);
  11. return ”<a $text>”;
  12. }
  13. add_filter(‘wp_tag_cloud’, ‘colorCloud’, 1);

把上面的代码加入到模板文件的 functions.php 里即可。

具体演示可以看本站的标签云!

1 枚回复


  1. 百奥博客 说:

    彩色tag cloud,之前看到过,一直不知道怎么实现,感谢分享!


发表回复


XHTML: 您可以使用如下代码:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>