<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Very Life &#187; Cool Tags</title>
	<atom:link href="http://verylifes.com/tag/cool-tags/feed" rel="self" type="application/rss+xml" />
	<link>http://verylifes.com</link>
	<description>Simple happiness</description>
	<lastBuildDate>Sat, 28 Aug 2010 14:59:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>彩色标签云的实现与 Simple Tags,Cool Tags,WP Cumulus 三个标签云插件的比较</title>
		<link>http://verylifes.com/2009/color-tag-cloud-realization-and-simple-tags-cool-tags-wp-cumulus-tag-cloud-plugin-comparison-of-three.html</link>
		<comments>http://verylifes.com/2009/color-tag-cloud-realization-and-simple-tags-cool-tags-wp-cumulus-tag-cloud-plugin-comparison-of-three.html#comments</comments>
		<pubDate>Sun, 08 Nov 2009 03:30:00 +0000</pubDate>
		<dc:creator>whitewords</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Cool Tags]]></category>
		<category><![CDATA[Simple Tags]]></category>
		<category><![CDATA[WP Cumulus]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[原生代码]]></category>
		<category><![CDATA[彩色标签云]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[标签云]]></category>

		<guid isPermaLink="false">http://verylifes.com/2009/color-tag-cloud-realization-and-simple-tags-cool-tags-wp-cumulus-tag-cloud-plugin-comparison-of-three.html</guid>
		<description><![CDATA[


 标签云大家都在使用，各种插件也不少，其中比较突出比较有名的两款插件Simple Tags和WP Cumulus几乎是大家的标配了，Simple Tags这个插件可以说功能非常强大，包括热度、内链、样式规范等都非常强，而WP Cumulus则注重在华丽方面，以一种3D的方式来表现标签，更生动化的体现了标签云的函义，而第三款国人开发的插件Cool Tags则是一个非常短小精悍的插件，它功能不多，但更注重在表现方面，比如字体大小样式的规范化和热度色彩的区分。曾经写主题的时候考虑到标签云的样式问题，也曾想自己写一段函数在主题里，后来考虑到适用性时放弃了，因为如果写代码与Cool Tags这个插件来比，反而不如Cool Tags方便。
 
下面我就说说关于实现彩色标签云的方法。我们从网上大多可以得到如下的彩色标签云原生代码：
//彩色标签云函数开始
function colorCloud($text) {
  $text = preg_replace_callback('&#124;&#60;a (.+?)&#62;&#124;i', 'colorCloudCallback', $text);
  return $text;
}
function colorCloudCallback($matches) {
  $text = $matches[1];
  $color = dechex(rand(0,16777215));
  $pattern = '/style=(\'&#124;\&#34;)(.*)(\'&#124;\&#34;)/i';
  $text = preg_replace($pattern, &#34;style=\&#34;color:#{$color};$2;\&#34;&#34;, $text);
  return &#34;&#60;a $text&#62;&#34;;
}
add_filter('wp_tag_cloud', 'colorCloud', 1); 
这段代码从表面上确实实现了让标签云变为彩色的，但在实际使用当中却很容易发现，其实现的是随机色彩，也就是说每一个标签都随机的生成了一个色彩，如果放在主题里，样式是非常凌乱的，可以说效果有了，但也乱了浏览者的眼睛，而如果你不想使用更加强大但在标签色彩上相对简单的Simple Tags插件，或你不想要那种炫而又炫的云效果呢？那我们就转过来看看Cool Tags吧，这个插件很简单，我试分析如下：
  首先，Cool Tags通过插件的option设置功能来设置了五个不同热度的颜色，这段代码就省略不说了。
其次，Cool Tags通过widget的option方式提供了最多显示标签数、最大字号、最小字号、字号单位、排序等的设置，其实这段的设置主要是为WordPress的标签云输出函数wp_tag_cloud来提供参数的，以便让wp_tag_cloud函数更好的显示这些标签，那么关键的东西来了，对不同热度进行分级上色，看如下代码：

1
2
3
4
5
6
7
8
9
10
function [...]]]></description>
			<content:encoded><![CDATA[<p>标签云大家都在使用，各种插件也不少，其中比较突出比较有名的两款插件Simple Tags和WP Cumulus几乎是大家的标配了，Simple Tags这个插件可以说功能非常强大，包括热度、内链、样式规范等都非常强，而WP Cumulus则注重在华丽方面，以一种3D的方式来表现标签，更生动化的体现了标签云的函义，而第三款国人开发的插件Cool Tags则是一个非常短小精悍的插件，它功能不多，但更注重在表现方面，比如字体大小样式的规范化和热度色彩的区分。曾经写主题的时候考虑到标签云的样式问题，也曾想自己写一段函数在主题里，后来考虑到适用性时放弃了，因为如果写代码与Cool Tags这个插件来比，反而不如Cool Tags方便。</p>
<p> <span id="more-6"></span>
<p>下面我就说说关于实现彩色标签云的方法。我们从网上大多可以得到如下的彩色标签云原生代码：</p>
<pre>//彩色标签云函数开始
function colorCloud($text) {
  $text = preg_replace_callback('|<span style="color: #0000ff">&lt;</span><span style="color: #800000">a</span> (.+?)<span style="color: #0000ff">&gt;</span>|i', 'colorCloudCallback', $text);
  return $text;
}
function colorCloudCallback($matches) {
  $text = $matches[1];
  $color = dechex(rand(0,16777215));
  $pattern = '/style=(\'|\&quot;)(.*)(\'|\&quot;)/i';
  $text = preg_replace($pattern, &quot;style=\&quot;color:#{$color};$2;\&quot;&quot;, $text);
  return &quot;<span style="color: #0000ff">&lt;</span><span style="color: #800000">a</span> $<span style="color: #ff0000">text</span><span style="color: #0000ff">&gt;</span>&quot;;
}
add_filter('wp_tag_cloud', 'colorCloud', 1); </pre>
<p>这段代码从表面上确实实现了让标签云变为彩色的，但在实际使用当中却很容易发现，其实现的是随机色彩，也就是说每一个标签都随机的生成了一个色彩，如果放在主题里，样式是非常凌乱的，可以说效果有了，但也乱了浏览者的眼睛，而如果你不想使用更加强大但在标签色彩上相对简单的Simple Tags插件，或你不想要那种炫而又炫的云效果呢？那我们就转过来看看Cool Tags吧，这个插件很简单，我试分析如下：<br />
  <br />首先，Cool Tags通过插件的option设置功能来设置了五个不同热度的颜色，这段代码就省略不说了。</p>
<p>其次，Cool Tags通过widget的option方式提供了最多显示标签数、最大字号、最小字号、字号单位、排序等的设置，其实这段的设置主要是为WordPress的标签云输出函数wp_tag_cloud来提供参数的，以便让wp_tag_cloud函数更好的显示这些标签，那么关键的东西来了，对不同热度进行分级上色，看如下代码：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> setSpeed<span style="color: #009900;">&#40;</span><span style="color: #000088;">$num</span><span style="color: #339933;">,</span><span style="color: #000088;">$fontSizeNum</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;=</span> <span style="color: #000088;">$fontSizeNum</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$num</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">return</span> <span style="color: #000088;">$fontSizeNum</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">/</span><span style="color: #000088;">$fontSizeNum</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&gt;=</span> <span style="color: #000088;">$num</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">/</span><span style="color: #000088;">$fontSizeNum</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$num</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">return</span> <span style="color: #000088;">$i</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>这段函数代码主要实现了步进，下面这段代码中调用了它，并进一步上色：</p>
<p></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> cooltags<span style="color: #009900;">&#40;</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$tag_min_size</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//默认最小字体</span>
  <span style="color: #000088;">$tag_max_size</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">22</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//默认最大字体</span>
  <span style="color: #000088;">$fontSizeNum</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//热度等级</span>
  <span style="color: #666666; font-style: italic;">//默认颜色</span>
  <span style="color: #000088;">$colors</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;#ccc&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;#555&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;#06c&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">3</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;#468c00&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;#f60&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;#f00&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">//如果更改了热度颜色，下面会开始使用用户定义的颜色</span>
  <span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;x-small&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#555&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;small&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#06c&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;medium&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#468c00&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;large&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#f60&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;x-large&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#f00&quot;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000088;">$num_tags_all</span> <span style="color: #339933;">=</span> wp_count_terms<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'post_tag'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$num_all</span> <span style="color: #339933;">=</span> number_format_i18n<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$num_tags_all</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$fontSizeSpeed</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag_max_size</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$tag_min_size</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$fontSizeNum</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$str_pattern</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/(\&lt;a(.*?)\&lt;\/a\&gt;)/is&quot;</span><span style="color: #339933;">;</span> 
  <span style="color: #666666; font-style: italic;">//下面这段分析标签云输出函数给出的数据</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$str_pattern</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #339933;">,</span> <span style="color: #000088;">$matches</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$counts</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$hcontent</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$sc</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/(\&lt;a(.*?)\&gt;)/is'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$hcontent</span><span style="color: #339933;">,</span> <span style="color: #000088;">$matcht</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$sc</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$htitle</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$matcht</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/title=\'(\d).*?\'/is'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$htitle</span><span style="color: #339933;">,</span> <span style="color: #000088;">$match</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$tag_num</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$match</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      <span style="color: #000088;">$counts</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$tag_num</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #666666; font-style: italic;">//对标签云给出的数据进行重组重写</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$str_pattern</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #339933;">,</span> <span style="color: #000088;">$matches</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$hcontent</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$num_tags_speed</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$counts</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">/</span> <span style="color: #990000;">max</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$counts</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$fontColor</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$colors</span><span style="color: #009900;">&#91;</span>setSpeed<span style="color: #009900;">&#40;</span><span style="color: #000088;">$num_tags_speed</span><span style="color: #339933;">,</span><span style="color: #000088;">$fontSizeNum</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$newStyle</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;style='color:<span style="color: #006699; font-weight: bold;">{$fontColor}</span>;<span style="color: #006699; font-weight: bold;">$2</span>'&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$oldStyle</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/(style='(.*?)')/is&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$newtext</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$oldStyle</span><span style="color: #339933;">,</span><span style="color: #000088;">$newStyle</span><span style="color: #339933;">,</span><span style="color: #000088;">$hcontent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$newtext</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;ul class='wp-tag-cloud'&gt;&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$textnew</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;ul class='wp-tag-cloud'&gt;<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\t</span>&lt;li&gt;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$textnew</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">join</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;&lt;/li&gt;<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\t</span>&lt;li&gt;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$a</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$textnew</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/li&gt;<span style="color: #000099; font-weight: bold;">\n</span>&lt;/ul&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$textnew</span> <span style="color: #339933;">=</span> <span style="color: #990000;">join</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      <span style="color: #000088;">$text</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;textarea&gt;&quot;</span><span style="color: #339933;">.</span>setSpeed<span style="color: #009900;">&#40;</span><span style="color: #000088;">$num_tags_speed</span><span style="color: #339933;">,</span><span style="color: #000088;">$fontSizeNum</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;/textarea&gt;&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #666666; font-style: italic;">//输出</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$textnew</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wp_tag_cloud'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'cooltags'</span><span style="color: #339933;">,</span>  <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//实现输出</span></pre></td></tr></table></div>

<p>上面的代码完成了最终的工作，嗯，我没有细化的去分解注释，主要是因为我对PHP中的一些东西不是很熟，很多时候还需要查手册，再一个我的目的是提出一种思路，或去分析别人的思路给大家，让大家有一种自己也能做插件的愿望和想法，授之与鱼不如授之与渔，简单的一个标签云，根据大家的立意不同，可以做出不同种的插件，那么这就是一种想法和愿望，而通过不同的路径来实现，不同的算法，不同的逻辑顺序即使结果是相同的，但也会有不同的代码效率。呵呵，希望大家能够通过看代码和比较插件功能来提高自己，更希望大家将自己的想法转化为实际的插件来丰富更多的WordPress的使用者。</p>
<p><small><strong>Statement:</strong> Site follow the <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Attribution-Noncommercial-Share Alike 3.0 Unported</a> agreement. Reprinted please specify switched </small><a href="http://verylifes.com/2009/color-tag-cloud-realization-and-simple-tags-cool-tags-wp-cumulus-tag-cloud-plugin-comparison-of-three.html">Very Life</a></p>
]]></content:encoded>
			<wfw:commentRss>http://verylifes.com/2009/color-tag-cloud-realization-and-simple-tags-cool-tags-wp-cumulus-tag-cloud-plugin-comparison-of-three.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
