个人博客

不用插件实现wordpress彩色标签云汇总

2011-08-25

我的博客侧 边栏也加上了小工具里的标签云,感觉标签云可以给访客更多的浏览选择,挺不错的,但是默认的标签云不漂亮,首先都是一种颜色我不太喜欢,然后我也不喜欢字 有大有小的,看起来好乱,于是乎,昨天在网上搜来搜去,想找到点方法改动一下标签云,虽然插件可以实现,但是插件太多也影响网站打开的速度呢,能不用就不用了吧!

自己直接更改源文件来实现修改标签云的效果还真的不好找,虽然有很多介绍方法的,可是大部分说的都不详细,有头无尾的,让人不知如何下手,还好就在我快要放弃的时候,终于找到一篇比较好的文章,我照着博主说的方法修改了一下,果然成功了!
所以写在这里分享一下,愿更多的朋友学会此种方法哦!
第一部分

1、将以下代码放入当前主题(theme)的 functions.php 文件中,要放在<?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);

说明下:$color = dechex(rand(0,16777215)); 作用是定义标签随机颜色的十进制数值范围,0 等于#000,16777215 等于#fff。你可以使用进制换算工具换算后修改这行代码,改变颜色范围。

附录:10进制颜色代码

白色:16777215 红色:16711680 绿色:65280 蓝色:255 牡丹红:16711935  青色:65535 黄色:16776960 黑色:0 海蓝:7396243 巧克力色:6042391 蓝紫色:10444703 黄铜色:11904578 亮金色:14276889 棕色:10911037  青铜色:9205843 深棕:6045747 深绿:3100463 深铜绿色:4879982  深橄榄绿:5197615 深兰花色:10040013 深紫色:8855416 深石板蓝:7021454  深铅灰色:3100495 深棕褐色:9922895 深绿松石色:7377883 暗木色:8740418  淡灰色:5526612 土灰玫瑰红色:8741731 长石色:13734517 火砖色:9315107  森林绿:2330147 金色:13467442 鲜黄色:14408560 灰色:12632256  铜绿色:5406582 青黄色:9689968 猎人绿:2186785 印度红:5123887  土黄色:10461023 浅蓝色:12638681 浅灰色:11053224 浅钢蓝色:9408445  浅木色:15319718 石灰绿色:3329330 桔黄色:14972979 褐红色:9315179  中海蓝色:3329433 中蓝色:3289805 中森林绿:7048739 中鲜黄色:15395502  中兰花色:9662683 中海绿色:4353858 中石板蓝色:8323327 中春绿色:8388352  中绿松石色:7396315 中紫红色:14381203 中木色:10911844 深藏青色:3092303  海军蓝:2302862 霓虹蓝:5066239 霓虹粉红:16740039 新深藏青色:156  新棕褐色:15452062 暗金黄色:13612347 橙色:16744192 橙红色:16720896  淡紫色:14381275 浅绿色:9419919 粉红色:12357519 李子色:15379946  石英色:14277107 艳蓝色:5855659 鲑鱼色:7291458 猩红色:12326679  海绿色:2330216 半甜巧克力色:7029286 赭色:9333539 银色:15132922  天蓝:3316172 石板蓝:32767 艳粉红色:16719022 春绿色:65407  钢蓝色:2321294 亮天蓝色:3715294 棕褐色:14390128 紫红色:14204888  石板蓝色:11397866 浓深棕色:6045747 淡浅灰色:13487565 紫罗兰色:5189455  紫罗兰红色:13382297 麦黄色:14211263 黄绿色:10079282
2、调用标签云。这要分两种情况,如果您的主题(theme)支持widgets,添加标签云模块即可;如果没有则需手动添加,请使用下面这段代码在博客中调用。

<?php if ( function_exists('wp_tag_cloud') ) : ?>
<h2>标签云</h2>
<?php wp_tag_cloud('smallest=8&largest=22'); ?>
<?php endif; ?>

说明下标签云用到的参数:

smallest
(整数)(可选)使用次数最少的标签的字号大小(单位由unit参数决定)
默认值:8

largest
(整数)(可选)使用次数最多的标签的字号大小(单位由unit参数决定)
默认值:22

unit
(字符串)(可选)对smallest与largest的值的测量单位。可以是任何CSS长度单位,如pt, px, em, %。
默认值:’pt’

number
(整数)(可选)显示在云中的实际标签数。(值为’0′时显示所有标签)
默认值:45

format
(字符串)(可选)所显示的云的格式。

‘flat’ (默认值)标签被“separator”参数所定义的空格分隔
‘list’ 标签与class=’wp-tag-cloud’ 共同在UL中
‘array’ 标签在数组中,函数以数组方式返回标签云,以用在PHP中。注意:数组被返回,而非显示。

separator
(字符串)(可选)标签之间的文本/空格。注意:该参数引入于WordPress 2.9。
默认值:’/n’ (空格)

orderby
(字符串)(可选)标签的排列顺序。有效值包括:
‘name’ (默认值)
‘count’

order
(字符串)(可选)排列顺序(升序或降序)。有效值包括——必须大写:
‘ASC’ ——默认值
‘DESC’
‘RAND’ —— 以任意顺序排列标签。注意:该标签引入于WordPress 2.5。

exclude
(字符串)(可选)将要被排除的标签(term_id)的ID,各ID用逗号隔开。如
‘exclude=5,27′表示不显示term_id为5或27的标签。默认值为不排除任何标签。

百奥博用到了这一参数,示例:

<?php wp_tag_cloud('smallest=10&largest=22&exclude=13,21,129,229,313,253,326'); ?>

include
(字符串)(可选)要包含的标签(term_id)列表,各ID用逗号隔开。例如,
‘include=5,27′ 表示只显示term_id为5或27的标签。默认为包含所有链接。

link
(字符串)(可选)设置链接,允许编辑某个指定标签。注意:该标签引入于WordPress 2.7。
有效值包括:
‘view’ (默认值)
‘edit’

taxonomy
(字符串)(可选)用以生成云的分类法。注意:该标签引入于WordPress2.8。
‘post_tag’ —— (默认值)将文章标签当作云的来源
‘category’ —— 用文章分类生成云
‘link_category’ —— 用链接分类目录生成云

echo
(布尔型)(可选)显示结果,或将结果保留在变量中。默认值为true(显示标签云)。注意:该标签引入于WordPress2.8。
有效值包括:
1 (true) —— 默认值
0 (false)

第二部分

关于怎样在博客中手动添加标签云,我是根据以下链接中说的方法添加的,也放在这里供大家参考

在wordpress安装文件里找到wp-includes这个文件夹,然后在里面找category-template.php这个文件,在此文 件里查找wp_tag_cloud,这个就是标签云的调用函数了,查了一下参数表,得到wp_tag_cloud函数的参数如下:

smallest – Adjusts the size of the smallest tags in the cloud. Default is “8″.
largest – Adjusts the size of the biggest tags in the cloud. Default is “22″.
unit – Sets the unit type for font size (ie point or em). Default is “pt”.
number – How many tags will display in the cloud. Default is “45″.
format – “Flat” displays an inline cloud with each term separated by whitespace. “List” generates an unordered list. “Array” lets you define an array of tags. Default is “flat”.
orderby – Sort the cloud by “name” or “count”. Default is “name”.
order – Sort the cloud in ascending or descending order. Default is “ASC”.

对照修改即可,其中:
unit=是字体大小的单位,使用我们熟悉的px最好;
smallest=是指最小字体大小,自己修改;
largest=是指最大字体大小,自己修改。

还可以使用number=来设置标签的显示数量,orderby=来使得标签云按照标签的使用次数来排列等等。

以上为所有内容,不知道各位朋友学会了没有呢。

作者:Fooken | Categories:Wordpress | Tags:

2条评论

  1. botey说道:

    看的比较晕,如果能通过插件实现就好了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注