WordPress实现彩色标签云方法介绍

彩色标签云我们在很多的网站都可以看到此类效果了,下面我来给现在使用最多的个人博客系统wordpress来介绍如何实现彩色标签云.

这种彩色标签云效果可以通过修改Simple Tags来显示。

1.在simple-tags.client.php中先找到如下代码:

function getColorByScale($scale_color, $min_color, $max_color)

2.注释掉(或者删除)getColorByScale这个function中的以下语句:

  1. $scale_color = $scale_color / 100;
  2. $minr = hexdec(substr($min_color, 1, 2));
  3. $ming = hexdec(substr($min_color, 3, 2));
  4. $minb = hexdec(substr($min_color, 5, 2));
  5. $maxr = hexdec(substr($max_color, 1, 2));
  6. $maxg = hexdec(substr($max_color, 3, 2));
  7. $maxb = hexdec(substr($max_color, 5, 2));
  8. $r = dechex(intval((($maxr - $minr) * $scale_color) + $minr));
  9. $g = dechex(intval((($maxg - $ming) * $scale_color) + $ming));
  10. $b = dechex(intval((($maxb - $minb) * $scale_color) + $minb));

3.加上以下代码:

  1. //Colorful Tag Cloud start
  2. $r = dechex(rand(0,255));
  3. $g = dechex(rand(0,196));
  4. $b = dechex(rand(0,255));
  5. //Colorful Tag Cloud end至于要显示多少个标签,怎么排列,热门标签和普通标签分别为多少大小的字体,可以在后台的Simple Tags的选项中设置.

方法二,如果上面办法不可以我们可参考如下办法。

后台编辑 主题 的 functions.php,输入以下代码:

  1. function colorCloud($text) {
  2. $text = preg_replace_callback('|<a (.+?)>|i', 'colorCloudCallback', $text);
  3. return $text;
  4. }
  5. function colorCloudCallback($matches) {
  6. $text = $matches[1];
  7. $color = dechex(rand(0,16777215));
  8. $pattern = '/|")(.*)('|")/i';
  9. $text = preg_replace($pattern, "", $text);
  10. return "<a $text>";
  11. }
  12. add_filter('wp_tag_cloud', 'colorCloud', 1);

可以看到,颜色是随机的,可以自行修改 $color = dechex(rand(0,16777215)); 这行来修改范围,这样就很炫耀哈哈,然后在侧边栏 sidebar.php 里调用如下代码:

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

即可,8 是最小的 tag 的字体大小(用的最少的 tag),24 是最大的(用的最多的 tag),50 是 tag 的数目,可以自行修改.