请稍等...页面即将加载完成
wordpress的百度标签云
今天看百度搜索风云榜【http://top.baidu.com/】网页的时候,看见旁边那个标签云效果还可以,就用到博客中了,见侧边栏。下面说说实现的方法:首先要做一个xml的标签数据页面,我是在根目录下的wp-tags.php。源码示下:
View Code PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | header( "Content-type: text/xml "); require_once( dirname(__FILE__) . '/wp-config.php' ); $taglist = wp_tag_cloud('smallest=9&largest=22&unit=pt&number=200&format=link_arr&orderby=name&order=ASC&echo'); $dom = new DOMDocument('1.0','utf-8'); //创建新的xml文件 $root = $dom->createElement('root'); $dom->appendChild($root); //建立<messages>元素 $i=0; foreach($taglist as $tag) { $item = $dom->createElement('item'); $item->setAttribute('type', 'text'); $item->setAttribute('detail', $tag['word']); $item->setAttribute('link', $tag['link']); $item->setAttribute('weight', $tag['count']); $root->appendChild($item); } $XMLString = $dom->saveXML(); echo $XMLString; |
注意看有个wp_tag_cloud函数,这个函数在wp-includes/category-template.php里面,这个函数内调用的是wp_generate_tag_cloud,所以,我们直接找到这个函数,改变如下部分:
View Code PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | $a[] = "<a 此部分内容不变,故不在这里显示 /a>"; //添加下面的$b变量 $b[] = array('link'=> $tag_link, 'word'=> $tag_name, 'count'=>$count); } switch ( $format ) : case 'array' : $return =& $a; break; case 'list' : $return = "<ul class='wp-tag-cloud'>\n\t<li>"; $return .= join( "</li>\n\t<li>", $a ); $return .= "</li>\n</ul>\n"; break; //添加一个新的判断link_arr case 'link_arr' : $return = & $b; break; default : $return = join( $separator, $a ); break; endswitch; |
看见了么,就两个注释的地方添加了几行代码。其余不变,这样标签代码就制作好了。现在说页面。首先要加载baidu的swf.js文件,所以在你的当前模板的头文件(我的是wp-content/themes/zbench/header.php)中title标签之下添加一行
View Code HTML
1 | <script src="http://top.baidu.com/js/swf.js" type="text/javascript"></script> |
还需要把http://top.baidu.com/tagCloud_Fengyunbang.swf这个flash下载下来放在自己的模板目录之下【这样好管理点】。基本工作都做完了,进入后台页面,点击【外观】—>【小工具】。拖一个文本到侧边栏你想要的位置,在内容部分添加如下代码:
View Code HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <div id="flashContent" class="flash-cont">Flash</div>
<script language="javascript" type="text/javascript">
baidu.swf.create({
'id' : "TrendAnalyser",
'width' : "200",
'height' : "250",
'ver' : "9.0.0",
'errorMessage' : "请下载最新的Flash播放器!",
'url' : "./wp-content/themes/zbench/tagCloud_Fengyunbang.swf", <!--修改为你自己的目录-->
'vars' : "xml=./wp-tags.php",
'bgcolor' : "#FFFFFF",
'wmode' : "transparent",
'allowscriptaccess' :"always"
}, "flashContent");
</script> |
好了,刷新,有问题留言就好了
上一篇: python日期转换略讲
下一篇: python多线程处理连续消息

2012/01/21 于 04:03:13
怎么修改字体颜色
2011/05/21 于 12:12:38
==!好像不对!成功的是标签云得插件,不是你这个……纠结了!麻烦你加下我吧!
2011/05/21 于 12:11:33
嘿嘿!我成功了!是我自己的原因,你写的很详细!非常感谢你!
下一步我要把这个用在别的系统上!呵呵··!
2011/05/21 于 12:07:51
我最后还是没有实现,可能是最后一步不对吧,可以加下我么?我学习学习!
我的qq:75254048
2011/04/07 于 10:47:21
我是个初学者,在wp的代码堆里都转的头晕,请问,老兄能不能把代码从wp中独立出来弄成一个包呢?
2011/04/07 于 10:42:06
老兄,你网站侧边栏上的标签云,怎么弄的啊?
好炫!
2011/01/24 于 14:45:17
做得很好看,我在同样实验中,flash出来只是透明无任何东西是什么问题呢?
2010/10/25 于 09:43:56
貌似图片出不来啊,不知道显示图片有啥技巧
2010/10/25 于 13:53:47
这个我当时也没弄出来,不是很清楚
2010/10/26 于 13:28:43
还有 weight 的属性 你知道是什么吗?感觉40 60都差不多
2010/10/27 于 12:25:37
随便玩玩,要追究的很细就从内部开始学习一下,没的那么多时间
2011/05/02 于 19:31:56
Youre on top of the game. Thanks for sihanrg.
2010/10/26 于 13:27:57
果然。。。我单单链接百度xml里面自己的图片都不行。奇怪