请稍等...页面即将加载完成

wordpress的百度标签云

时间: 2010-10-10 / 分类: 我爱PHP, 杰伦专区 / 浏览次数: 1,600 views / 13个评论 发表评论

        今天看百度搜索风云榜【http://top.baidu.com/】网页的时候,看见旁边那个标签云效果还可以,就用到博客中了,见侧边栏。下面说说实现的方法:首先要做一个xml的标签数据页面,我是在根目录下的wp-tags.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,所以,我们直接找到这个函数,改变如下部分:

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标签之下添加一行

1
<script src="http://top.baidu.com/js/swf.js" type="text/javascript"></script>

        还需要把http://top.baidu.com/tagCloud_Fengyunbang.swf这个flash下载下来放在自己的模板目录之下【这样好管理点】。基本工作都做完了,进入后台页面,点击【外观】—>【小工具】。拖一个文本到侧边栏你想要的位置,在内容部分添加如下代码:

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>

        好了,刷新,有问题留言就好了

更多
订阅

13个评论

  1. 小牡
    2012/01/21 于 04:03:13

    怎么修改字体颜色

  2. 猪猪
    2011/05/21 于 12:12:38

    ==!好像不对!成功的是标签云得插件,不是你这个……纠结了!麻烦你加下我吧!

  3. 猪猪
    2011/05/21 于 12:11:33

    嘿嘿!我成功了!是我自己的原因,你写的很详细!非常感谢你!
    下一步我要把这个用在别的系统上!呵呵··!

  4. 猪猪
    2011/05/21 于 12:07:51

    我最后还是没有实现,可能是最后一步不对吧,可以加下我么?我学习学习! :razz: 我的qq:75254048

  5. 胡昂
    2011/04/07 于 10:47:21

    我是个初学者,在wp的代码堆里都转的头晕,请问,老兄能不能把代码从wp中独立出来弄成一个包呢?

  6. 胡昂
    2011/04/07 于 10:42:06

    老兄,你网站侧边栏上的标签云,怎么弄的啊?
    好炫!

  7. liuqiyuan
    2011/01/24 于 14:45:17

    做得很好看,我在同样实验中,flash出来只是透明无任何东西是什么问题呢?

  8. yangsh
    2010/10/25 于 09:43:56

    貌似图片出不来啊,不知道显示图片有啥技巧

    • admin
      2010/10/25 于 13:53:47

      这个我当时也没弄出来,不是很清楚

      • yangsh
        2010/10/26 于 13:28:43

        还有 weight 的属性 你知道是什么吗?感觉40 60都差不多

        • admin
          2010/10/27 于 12:25:37

          随便玩玩,要追究的很细就从内部开始学习一下,没的那么多时间

          • Lexine
            2011/05/02 于 19:31:56

            You’re on top of the game. Thanks for sihanrg.

      • yangsh
        2010/10/26 于 13:27:57

        果然。。。我单单链接百度xml里面自己的图片都不行。奇怪

发表评论

您的昵称 *

您的邮箱 *

您的网站


+ 3 = eight