WordPress默认的标签同一个颜色的,先想改为彩色标签。网上Search了一下,很多都是纯代码实现的。
共有两种方法:
1.随机颜色
在自己的主题目录中找到functions.php文件粘贴以下代码(不知道粘贴在哪里的,可粘贴在文件最后的'?>'前面):
1
2
3
4
5
6
7
8
9
10
11
12
13
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><a $text>";
}
add_filter('wp_tag_cloud', 'colorCloud', 1);</a>

$color = dechex(rand(0,16777215)); 的意思是随机取一个颜色代码,可以自己填写颜色范围。0表示#000000,16777215表示#ffffff,可以用十进制转换的工具转换。 add_filter('wp_tag_cloud', 'colorCloud', 1); 表示用colorClound取代默认的wp_tag_cloud,优先级是1. 粘贴好后,直接在主题的小工具里面,拖出标签云,就可以看到效果了。 2.自定义颜色 上面的方法是随机产生颜色,也可以自己定义颜色,把上面的代码换成:

1
2
3
4
5
6
7
8
9
function colorCloudCallback($matches) {
$tag_link=$matches[1];
/*颜色集合*/
$colorFull = array(#999′,’#D8D9A4′,’#9BB’,'#EB9′,’#a3c159′,’#FEC42D’,'#6C8C37′,
#c2dc15′,’#3371A3′,’#888′,’#00ccff’,'#FF8080′);
$color=$colorFull[ mt_rand(0, count($colorFull) - 1)];
$pattern =/style=(\’|\”)(.*)(\’|\”)/i’;
$tag_link= preg_replace($pattern, “style=\”color:{$color};$2;\”", $tag_link);
return “<a>”; } add_filter(‘wp_tag_cloud’, ‘colorCloud’, 1); </a>

从小工具中脱出标签云就可以使用了。

但是这两种方法都没法改字体大小,看了一下官方的wp_tag_cloud()函数的用法,可以在\wp-includes\category-template.php文件中,找到wp_tag_cloud()函数的具体代码,可以修改里面的格式。默认的代码是这样的:

1
2
3
4
5
6
7
8
function wp_tag_cloud( $args = '' ) {
	$defaults = array(
		'smallest' => 10, 'largest' => 25, 'unit' => 'pt', 'number' => 45,
		'format' => 'flat', 'separator' => "\n", 'orderby' => 'name', 'order' => 'ASC',
		'exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'post_tag', 'echo' => true
	);
 
....//以下省略

smallest:用的最少的标签的字体大小,单位为pt;
largest:用的最多的标签的字体大小,单位为pt;
unit:字体的默认单位,这里是pt,可用px,em,%;
number:显示的标签的最大数量,默认是45;
format:定义标签的表现形式,‘flat’标签间空格,‘list’ 标签置于一个类名为wp-tag-cloud的无序列表中,‘array’ 标签保存在数值中;
separator:分割符,这里是换行;
orderby:标签的排序,‘name’按名称排序,‘count’按使用次序排序;
order:标签的排序方式,‘ASC’升序,‘DESC’降序;
exclude:排除用逗号(半角)分隔的一列标签(term_id)。例如, 'exclude=5,27' 意味着term_id为5或27的标签将不会显示。默认不排除如何标签。
include:包含用逗号(半角)分隔的一列标签。例如,'include=5,27'意味着只有term_id为5或者27的标签将显示。默认包含如何标签。

更多用法请查看官方文档:http://codex.wordpress.org.cn/Function_Reference/wp_tag_cloud

>> 若为原创,转载请注明: 转载自Laycher's Blog

>> 本文链接地址: 纯代码实现彩色标签云,可修改字体大小

>> 订阅本站: http://feed.feedsky.com/laycher



无觅相关文章插件,快速提升流量