<?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>徘徊在玻璃之城 &#187; Wordpress</title>
	<atom:link href="http://blog.znsun.com/tag/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.znsun.com</link>
	<description>一个身在香港的业余摄影爱好者的博客</description>
	<lastBuildDate>Tue, 25 Oct 2011 09:17:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Feedburner + Pubsubhubbub + Wordpress 实现blog的实时更新</title>
		<link>http://blog.znsun.com/2010/02/1094/feedburner-pubsubhubbub-wordpress-to-achieve-real-time-blog-updates</link>
		<comments>http://blog.znsun.com/2010/02/1094/feedburner-pubsubhubbub-wordpress-to-achieve-real-time-blog-updates#comments</comments>
		<pubDate>Thu, 25 Feb 2010 10:27:09 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2010/02/1094/feedburner-pubsubhubbub-wordpress-%e5%ae%9e%e7%8e%b0blog%e7%9a%84%e5%ae%9e%e6%97%b6%e6%9b%b4%e6%96%b0</guid>
		<description><![CDATA[
在谷奥上看到一条消息，Google Reader已经全面支持PubSubHubbub服务了。换而言之，如果你的博客的feed支持PubSubHubbub，那么当你的博客更新后，新的文章会实时出现在那些订阅者的Google Reader里面。
按照谷奥上的说法，用WordPress搭建博客的用户可以安装插件来实现本站feed的实时更新功能。不过还有不少人和我一样是用 Feedburner 来烧制自己的feed，对于这部分用户，其实也可以很方便的实现PubSubHubbub，具体步骤只需要两步：

打开你的wordpress后台，找到Settings-&#62;Writing一项，在Update Services一栏中填写 
http://ping.feedburner.com

打开FeedBurner，找到你博客对应的Feed项，激活Publicize一栏中的PingShot功能。 



好了，至此你的博客就有实时更新的功能了，任何用Google Reader订阅你博客的朋友都会在你发布后的几分钟内收到更新。
现在，我将按下发布按钮……
	
	
	&#169; SUN for 徘徊在玻璃之城, 2010. &#124;
	  Permalink &#124;
	  与时俱进 &#124; 
	  7 comments ]]></description>
			<content:encoded><![CDATA[<p><img style="padding-left: 10px;" title="Pubsubhubbub" src="http://blog.znsun.com/wp-content/uploads/2010/02/pshb.png" alt="Pubsubhubbub" width="282" height="103" align="right" /></p>
<p>在谷奥上看到一条消息，<a href="http://goo.gl/JovG">Google Reader已经全面支持PubSubHubbub服务</a>了。换而言之，如果你的博客的feed支持PubSubHubbub，那么当你的博客更新后，新的文章会实时出现在那些订阅者的Google Reader里面。</p>
<p>按照谷奥上的说法，用WordPress搭建博客的用户可以<a href="http://goo.gl/5EgF">安装插件</a>来实现本站feed的实时更新功能。不过还有不少人和我一样是用 Feedburner 来烧制自己的feed，<strong>对于这部分用户，其实也可以很方便的实现PubSubHubbub，具体步骤只需要两步</strong>：</p>
<ol>
<li><strong>打开你的wordpress后台，找到Settings-&gt;Writing一项，在Update Services一栏中填写 </strong>
<p class="code"><strong>http://ping.feedburner.com</strong></p>
</li>
<li><strong>打开FeedBurner，找到你博客对应的Feed项，激活Publicize一栏中的PingShot功能。 </strong>
<p><a rel="lightbox[roadtrip]" href="http://blog.znsun.com/wp-content/uploads/2010/02/pingshot.png"><img title="pingshot" src="http://blog.znsun.com/wp-content/uploads/2010/02/_pingshot.png" alt="pingshot" width="400" height="134" align="center" /></a></p>
</li>
</ol>
<p>好了，至此你的博客就有实时更新的功能了，任何用Google Reader订阅你博客的朋友都会在你发布后的几分钟内收到更新。</p>
<p>现在，我将按下发布按钮……</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2010. |
	  <a href="http://blog.znsun.com/2010/02/1094/feedburner-pubsubhubbub-wordpress-to-achieve-real-time-blog-updates">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsun.com/2010/02/1094/feedburner-pubsubhubbub-wordpress-to-achieve-real-time-blog-updates#comments">7 comments</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2010/02/1094/feedburner-pubsubhubbub-wordpress-to-achieve-real-time-blog-updates/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Gravatar通用头像服务</title>
		<link>http://blog.znsun.com/2009/08/754/globally-recognized-avatar</link>
		<comments>http://blog.znsun.com/2009/08/754/globally-recognized-avatar#comments</comments>
		<pubDate>Fri, 07 Aug 2009 04:27:57 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[网站更新]]></category>
		<category><![CDATA[Gravatar]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2009/08/754/gravatar%e9%80%9a%e7%94%a8%e5%a4%b4%e5%83%8f%e6%9c%8d%e5%8a%a1</guid>
		<description><![CDATA[Gravatar(个人全球统一标识)全称为Globally Recognized Avatar(直译为”全球认识的头像”)的缩写。
它起源于在网上各处论坛中所广泛使用的头像(avatar)，随着Blog的广泛普及，在各处Blog的留言上也相继出现了头像，为了方便用户在四处的Blog广泛留言的同时可以拥有统一的头像，http://www.gravatar.com/ 提出了Gravatar这个概念并开始提供这项服务。这项服务概念上十分简单，就是把个人email地址与头像作为捆绑(请登录 http://www.gravatar.com 申请帐户，上传照片即可完成)，当你再在支持Gravatar的网站留言并使用你的个人email时，头像就会出现在你的留言旁。
比方说，我的头像现在就是一只健身老鼠：   
该网站会对各个头像评定等级，就按照美国电影协会所制定的标准。所以就有X、R、PG、G四个等级(从最不适宜到老少皆宜排序)，然后更酷的是，网站/Blog的管理者还能决定什么等级的头像才能显示，这显然更符合将来网络管理的趋势。
怎样申请Gravatar？
步骤很简单，如果你也有兴趣想做看看，就跟着一起试作吧：
(一)、首先是到Gravatar网站上去注册一个账号，很简单，只要填写一个你最常用的email，接着输入两次密码，送出之后，系统会寄一封确认信到你的信箱，开信，点一下启用账号连结即可。
(二)、接着，到Gravatar去登入，登入后，就可以开始上传你的图片了，格式则JPG／GIF／PNG皆可，头像尽量用jpg格式的，gif和png容易背景变黑。上传完后，等待着网站的管理员对头像图片分级 (G 普通级、PG 辅导级、R 和 X 为限制级)，审核完毕它会email通知你的。
注：一般来说一天时间就可以审核通过。如果图片不含暴力或者暴露内容，多半会得到G级别的等级。
通过之后这个头像就可以使用了。在任何支持Gravatar的地方，在填写email地址时，请填写你申请注册头像用的这个email地址。你的头像就会出现在留言中。
-----------分割线----------------
顺便更新了一下Wordpress后台。之前每次更新Wordpress都是个噩梦。需要备份数据库、deactivate插件、移除旧的WP文件，上传新的WP压缩包、然后解压、改文件夹权限属性、再activate插件、重新hack一些后台文件，再逐个检查插件是否有更新……。
以后就好了，现在更新WP和插件都可以在一分钟内自动完成，自己要注意的就是备份好数据库和hack过的文件啦。
	
	
	&#169; SUN for 徘徊在玻璃之城, 2009. &#124;
	  Permalink &#124;
	  网站更新 &#124; 
	  One comment ]]></description>
			<content:encoded><![CDATA[<p>Gravatar(个人全球统一标识)全称为Globally Recognized Avatar(直译为”全球认识的头像”)的缩写。</p>
<p>它起源于在网上各处论坛中所广泛使用的头像(avatar)，随着Blog的广泛普及，在各处Blog的留言上也相继出现了头像，为了方便用户在四处的Blog广泛留言的同时可以拥有统一的头像，<a href="http://www.gravatar.com/">http://www.gravatar.com/</a> 提出了Gravatar这个概念并开始提供这项服务。这项服务概念上十分简单，就是把个人email地址与头像作为捆绑(请登录 <a href="http://www.gravatar.com">http://www.gravatar.com</a> 申请帐户，上传照片即可完成)，当你再在支持Gravatar的网站留言并使用你的个人email<a href="http://blog.znsun.com/wp-content/uploads/2009/08/2.jpg"><img style="border-right: 0px; border-top: 0px; display: inline; margin: 10px 0px 10px 10px; border-left: 0px; border-bottom: 0px" title="2" src="http://blog.znsun.com/wp-content/uploads/2009/08/2_thumb.jpg" border="0" alt="2" width="102" height="102" align="right" /></a>时，头像就会出现在你的留言旁。</p>
<p><span style="color: #ff99cc;">比方说，我的头像现在就是一只健身老鼠：  <img src='http://blog.znsun.com/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /> </span></p>
<p>该网站会对各个头像评定等级，就按照美国电影协会所制定的标准。所以就有X、R、PG、G四个等级(从最不适宜到老少皆宜排序)，然后更酷的是，网站/Blog的管理者还能决定什么等级的头像才能显示，这显然更符合将来网络管理的趋势。</p>
<p>怎样申请Gravatar？</p>
<p>步骤很简单，如果你也有兴趣想做看看，就跟着一起试作吧：</p>
<p>(一)、首先是到Gravatar网站上去注册一个账号，很简单，只要填写一个你最常用的email，接着输入两次密码，送出之后，系统会寄一封确认信到你的信箱，开信，点一下启用账号连结即可。</p>
<p>(二)、接着，到Gravatar去登入，登入后，就可以开始上传你的图片了，格式则JPG／GIF／PNG皆可，头像尽量用jpg格式的，gif和png容易背景变黑。上传完后，等待着网站的管理员对头像图片分级 (G 普通级、PG 辅导级、R 和 X 为限制级)，审核完毕它会email通知你的。</p>
<p>注：一般来说一天时间就可以审核通过。如果图片不含暴力或者暴露内容，多半会得到G级别的等级。</p>
<p>通过之后这个头像就可以使用了。在任何支持Gravatar的地方，在填写email地址时，请填写你申请注册头像用的这个email地址。你的头像就会出现在留言中。</p>
<p>-----------分割线----------------</p>
<p>顺便更新了一下Wordpress后台。之前每次更新Wordpress都是个噩梦。需要备份数据库、deactivate插件、移除旧的WP文件，上传新的WP压缩包、然后解压、改文件夹权限属性、再activate插件、重新hack一些后台文件，再逐个检查插件是否有更新……。</p>
<p>以后就好了，现在更新WP和插件都可以在一分钟内自动完成，自己要注意的就是备份好数据库和hack过的文件啦。</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2009. |
	  <a href="http://blog.znsun.com/2009/08/754/globally-recognized-avatar">Permalink</a> |
	  <a href="http://blog.znsun.com/category/website" title="View all posts in 网站更新" rel="category tag">网站更新</a> | 
	  <a href="http://blog.znsun.com/2009/08/754/globally-recognized-avatar#comments">One comment</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2009/08/754/globally-recognized-avatar/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS 优化工具</title>
		<link>http://blog.znsun.com/2009/08/809/css-optimizer</link>
		<comments>http://blog.znsun.com/2009/08/809/css-optimizer#comments</comments>
		<pubDate>Wed, 05 Aug 2009 07:24:59 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[随笔杂谈]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/?p=809</guid>
		<description><![CDATA[现在网页制作中采用CSS/XHTML技术，可以有效地对页面以及各种元素的布局、字体、颜色、背景和其它效果实现跨浏览器的精确控制。但是，就算是简单的博客，所包含的CSS文件就可能很大。举个简单的例子，WordPress theme的CSS文件有时就多大20k。从网页速度优化的角度来说，CSS有很大的可压缩空间。
CSS优化工具是一款基于CSS Tidy 的强大CSS优化器。它可以根据你的需要对CSS进行精简优化，提高网页加载速度。
之前我使用的优化工具是CSS Tweak，不过在使用了一段时间后，我却发现这个网页已经不复存在了。     为了方便自己使用，就在自己网站上安装了这款开源工具。也希望能给其他人一点帮助。
用法很简单：
把你的CSS代码复制进去，然后根据需要选择不同的压缩方式就可以了。一般建议自己保留一份未压缩的，然后网站上使用的css文件用最大压缩比方式（就是下拉菜单的第一个选项）来压缩。
	
	
	&#169; SUN for 徘徊在玻璃之城, 2009. &#124;
	  Permalink &#124;
	  随笔杂谈 &#124; 
	  No comment ]]></description>
			<content:encoded><![CDATA[<p>现在网页制作中采用CSS/XHTML技术，可以有效地对页面以及各种元素的布局、字体、颜色、背景和其它效果实现跨浏览器的精确控制。但是，就算是简单的博客，所包含的CSS文件就可能很大。举个简单的例子，WordPress theme的CSS文件有时就多大20k。从网页速度优化的角度来说，CSS有很大的可压缩空间。</p>
<p><a title="CSS 优化工具" href="http://css.znsun.com" target="_blank">CSS优化工具</a>是一款基于<a title="CSS Tidy" href="http://csstidy.sourceforge.net/" target="_blank">CSS Tidy</a> 的强大CSS优化器。它可以根据你的需要对CSS进行精简优化，提高网页加载速度。</p>
<p>之前我使用的优化工具是<a href="http://www.google.com/search?rlz=1C1GGLS_enHK319HK340&amp;sourceid=chrome&amp;ie=UTF-8&amp;q=CSS+Tweak" target="_blank">CSS Tweak</a>，不过在使用了一段时间后，我却发现这个网页已经不复存在了。     为了方便自己使用，就在自己网站上安装了这款开源工具。也希望能给其他人一点帮助。</p>
<p>用法很简单：<br />
把你的CSS代码复制进去，然后根据需要选择不同的压缩方式就可以了。一般建议自己保留一份未压缩的，然后网站上使用的css文件用最大压缩比方式（就是下拉菜单的第一个选项）来压缩。</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2009. |
	  <a href="http://blog.znsun.com/2009/08/809/css-optimizer">Permalink</a> |
	  <a href="http://blog.znsun.com/category/essay" title="View all posts in 随笔杂谈" rel="category tag">随笔杂谈</a> | 
	  <a href="http://blog.znsun.com/2009/08/809/css-optimizer#comments">No comment</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2009/08/809/css-optimizer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP中远程文件的调用-关于Allow url fopen</title>
		<link>http://blog.znsun.com/2007/12/636/php-remote-file-in-the-call-about-allow-url-fopen</link>
		<comments>http://blog.znsun.com/2007/12/636/php-remote-file-in-the-call-about-allow-url-fopen#comments</comments>
		<pubDate>Mon, 17 Dec 2007 14:31:39 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2007/12/636</guid>
		<description><![CDATA[关键词：Allow url fopen，php
最近发现blog突然出了点小问题，调试后发现是服务器提供商基于安全理由把Allow url fopen这个选项给关了，而我自己写的有一些代码中就用了相应的功能，所以导致了问题的出现，具体错误特征如下：
URL file-access is disabled in the server configuration
打开Allow url fopen的作用主要是在php程序中可以用http或者ftp方式来调用其他文件。如下面的代码：
&#60;?php include("http://example.com/includes/example_include.php"); ?&#62;
而关闭该选项后，使用上面的代码就会出错，必须换成下面的代码方可。
&#60;?php include($_SERVER['DOCUMENT_ROOT']."/includes/example_include.php"); ?&#62;
这里，系统变量 $_SERVER['DOCUMENT_ROOT']返回的是远程系统根目录。
其实现在很多服务商都把allow url fopen功能给关了，主要原因是防止黑客的注入式进攻，所以强烈建议用第二种方法来写代码。另外，如果还是想用url方式来写代码的话，可以考虑用curl。
我用这个功能主要是实现WordPress的首页静态化。我的blog首页使用了我自己hack过的af-extended-live-archive插件，这样的好处就是可以整个站用ajax方式来访问，但是加载速度就比较一般了。所以我首先生成一个静态的页面（比方说叫example.html），然后在用index.php将example.html中的内容读取出来，实现静态化。
这里大家也许会觉得奇怪，那你把首页直接重定向到example.html不就可以了……
这里我的考量主要是两点：
1. php方式可以对example.html的内容进行压缩。
2. 为了更好的SEO，我在index.php进行了判定，如果来访问的是机器人,我会把正常的页面发给它,而不是显示加载了af-extended-live-archive插件的example.html,方便机器人进行爬行抓取。
	
	
	&#169; SUN for 徘徊在玻璃之城, 2007. &#124;
	  Permalink &#124;
	  与时俱进 &#124; 
	  No comment ]]></description>
			<content:encoded><![CDATA[<p>关键词：Allow url fopen，php</p>
<p>最近发现blog突然出了点小问题，调试后发现是服务器提供商基于安全理由把Allow url fopen这个选项给关了，而我自己写的有一些代码中就用了相应的功能，所以导致了问题的出现，具体错误特征如下：</p>
<p><strong><span style="color: #ff0000;">URL file-access is disabled in the server configuration</span></strong></p>
<p>打开Allow url fopen的作用主要是在php程序中可以用http或者ftp方式来调用其他文件。如下面的代码：</p>
<p class="code" >&lt;?php include("http://example.com/includes/example_include.php"); ?&gt;</p>
<p>而关闭该选项后，使用上面的代码就会出错，必须换成下面的代码方可。</p>
<p class="code" >&lt;?php include($_SERVER['DOCUMENT_ROOT']."/includes/example_include.php"); ?&gt;</p>
<p>这里，系统变量 <code>$_SERVER['DOCUMENT_ROOT']返回的是远程系统根目录。</code></p>
<p>其实现在很多服务商都把allow url fopen功能给关了，主要原因是防止黑客的注入式进攻，所以强烈建议用第二种方法来写代码。另外，如果还是想用url方式来写代码的话，可以考虑用<a href="http://wiki.dreamhost.com/CURL_PHP_tutorial" target="_blank">curl</a>。</p>
<p>我用这个功能主要是实现WordPress的首页静态化。我的blog首页使用了我自己hack过的af-extended-live-archive插件，这样的好处就是可以整个站用ajax方式来访问，但是加载速度就比较一般了。所以我首先生成一个静态的页面（比方说叫example.html），然后在用index.php将example.html中的内容读取出来，实现静态化。</p>
<p>这里大家也许会觉得奇怪，那你把首页直接重定向到example.html不就可以了……<br />
这里我的考量主要是两点：<br />
1. php方式可以对example.html的内容进行压缩。<br />
2. 为了更好的SEO，我在index.php进行了判定，如果来访问的是机器人,我会把正常的页面发给它,而不是显示加载了af-extended-live-archive插件的example.html,方便机器人进行爬行抓取。</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsun.com/2007/12/636/php-remote-file-in-the-call-about-allow-url-fopen">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsun.com/2007/12/636/php-remote-file-in-the-call-about-allow-url-fopen#comments">No comment</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2007/12/636/php-remote-file-in-the-call-about-allow-url-fopen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Media Player</title>
		<link>http://blog.znsun.com/2007/04/568/flash-media-player</link>
		<comments>http://blog.znsun.com/2007/04/568/flash-media-player#comments</comments>
		<pubDate>Wed, 25 Apr 2007 08:20:07 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[音乐]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2007/04/568</guid>
		<description><![CDATA[本文于2011年10月25日再次更新 
本文于2009年08月20日再次更新
关键词：Flash Media Mp3 播放器 Player wordpress
 
目前网路上的Media播放器可谓是多不胜数，所以，这里只说说几个我认为优秀的Flash方式的播放器和Wordpress中的优秀插件，最后再沙说一下我自己使用的组合版本。

CoolPlayer
 CoolPlayer是国人制作的一个Wordpress的插件，但是也可以在其他平台上运行。支持目前网络上的绝大多数格式的media，包括Google Video, Youtube等比较难获取media源的网站，配置简单，容易上手。
 严格意义上来说，CoolPlayer不应该被称做Flash Media Player，我觉得用Online Media Player更合适一些。
 和CoolPlayer类似的一款插件叫做Anarchy media Player，但是没有Coolplayer支持的格式多，不推荐。
Flash Media Player
 名副其实的Flash Media Player (CoolPlayer实质上就是整合了这款Flash播放器)。
 这个播放器可以根据你自己的需要进行定制，功能非常强大；而且作者公开了源码，方便你进一步定制。
XSPF Player plugin
 顾名思义，这个其实是XSPF Web Mp3 Player的Wordpress插件（XSPF Player是一款Mp3播放器，支持xml格式的playerlist）。利用此插件，你可以方便的在后台定制自己的播放列表，不需要去修改网页源代码。不过XSPF Player比较丑陋，而且播放列表不支持中文。
Flash Mp3 Player
 更新：他的blog现在已经改为虾米播放器了。不过下载链接中的Flash播放器还能用。
 王晓峰的博客《不许联想》中有个音乐盒，其实用的就是这款播放器。这款播放器的好处是界面比较漂亮，缺点就是音乐必须在同目录下，且不能更改playlist文件的地址。换句话说，要是有人想下载《不许联想》中音乐盒里的歌曲，其实很简单……，秘密就在我提供的这个下载包里。

我的blog上其实使用了前面三个插件。平常在文中出现的media，我用的是CoolPlayer，而左侧的音乐盒（不好意思，强迫大家一起跟着听了……）我用的是“Flash Media Player+XSPF Player Plugin PlayerList”的组合。因为前者的播放器可以定制，且支持中文；而后者的播放列表可以很容易的进行更新——其实可以将他们整合为一个新的音乐盒插件，不过那样太耗时间，就等着有心人来做吧。我这里只说一下XSPF Player Plugin中生成的playlist中需要修改的地方：
你可以打开playlist.php中，在代码
echo &#34;&#60;br /&#62;&#60;br /&#62;
&#60;track&#62;\n&#34;;
后添加如下的代码：
if (($row['artist'] != '') &#124;&#124; ($row['title'] != '')) [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff99cc;"><strong>本文于2011年10月25日再次更新 </strong></span></p>
<p><span style="color: #ff99cc;"><strong>本文于2009年08月20日再次更新</strong></span></p>
<p>关键词：<em>Flash Media Mp3 播放器 Player wordpress<br />
 </em></p>
<p>目前网路上的Media播放器可谓是多不胜数，所以，这里只说说几个我认为优秀的Flash方式的播放器和Wordpress中的优秀插件，最后再沙说一下我自己使用的组合版本。</p>
<ol>
<li><a href="http://www.coolcode.cn/andot/wp-plugins/wordpress-plugin-coolplayer/100" target="_blank">CoolPlayer</a><br />
 CoolPlayer是国人制作的一个Wordpress的插件，但是也可以在其他平台上运行。支持目前网络上的绝大多数格式的media，包括Google Video, Youtube等比较难获取media源的网站，配置简单，容易上手。<br />
 严格意义上来说，CoolPlayer不应该被称做Flash Media Player，我觉得用Online Media Player更合适一些。<br />
 和CoolPlayer类似的一款插件叫做<a href="http://an-archos.com/anarchy-media-player" target="_blank">Anarchy media Player</a>，但是没有Coolplayer支持的格式多，不推荐。</li>
<li><a href="http://www.longtailvideo.com/" target="_blank">Flash Media Player</a><br />
 名副其实的Flash Media Player (CoolPlayer实质上就是整合了这款Flash播放器)。<br />
 这个播放器可以根据你自己的需要<a href="http://www.jeroenwijering.com/extras/wizard.html" target="_blank">进行定制</a>，功能非常强大；而且作者公开了源码，方便你进一步定制。</li>
<li><a href="http://www.boriel.com/?page_id=12" target="_blank">XSPF Player plugin</a><br />
 顾名思义，这个其实是<a href="http://musicplayer.sourceforge.net/" target="_blank">XSPF Web Mp3 Player</a>的Wordpress插件（XSPF Player是一款Mp3播放器，支持xml格式的playerlist）。利用此插件，你可以方便的在后台定制自己的播放列表，不需要去修改网页源代码。不过XSPF Player比较丑陋，而且播放列表不支持中文。</li>
<li><a href="http://znsun.com/Download/2007/20070424_mp3player.rar" target="_blank">Flash Mp3 Player</a><br />
 <span style="color: #ff99cc;">更新：他的blog现在已经改为虾米播放器了。不过下载链接中的Flash播放器还能用。</span><br />
<span style="text-decoration: line-through;"> 王晓峰的博客《<a href="http://www.wangxiaofeng.net/" target="_blank">不许联想</a>》中有个音乐盒，其实用的就是这款播放器</span>。这款播放器的好处是界面比较漂亮，缺点就是音乐必须在同目录下，且不能更改playlist文件的地址。换句话说，要是有人想下载《<a href="http://www.wangxiaofeng.net/" target="_blank">不许联想</a>》中音乐盒里的歌曲，其实很简单……，秘密就在我提供的这个下载包里。</li>
</ol>
<p>我的blog上其实使用了前面三个插件。平常在文中出现的media，我用的是CoolPlayer，而左侧的音乐盒（不好意思，强迫大家一起跟着听了……）我用的是“Flash Media Player+XSPF Player Plugin PlayerList”的组合。因为前者的播放器可以定制，且支持中文；而后者的播放列表可以很容易的进行更新——其实可以将他们整合为一个新的音乐盒插件，不过那样太耗时间，就等着有心人来做吧。我这里只说一下XSPF Player Plugin中生成的playlist中需要修改的地方：</p>
<p>你可以打开playlist.php中，在代码</p>
<pre class="brush: xml; light: true;">echo &quot;&lt;br /&gt;&lt;br /&gt;
&lt;track&gt;\n&quot;;</pre>
<p>后添加如下的代码：</p>
<pre class="brush: xml; light: true;">if (($row['artist'] != '') || ($row['title'] != '')) {&lt;br /&gt;&lt;br /&gt;
printf(&quot; &lt;title&gt;%s&lt;/title&gt;\n&lt;creator&gt;%s&lt;/creator&gt;\n&quot;, xspf_player::entities($row['title']), xspf_player::entities($row['artist']));}</pre>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsun.com/2007/04/568/flash-media-player">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsun.com/2007/04/568/flash-media-player#comments">31 comments</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2007/04/568/flash-media-player/feed</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>优化WP-Cache：Wordperss优化手册(2)</title>
		<link>http://blog.znsun.com/2007/04/547/wp-cache-optimization-wordperss-optimization-manual-2</link>
		<comments>http://blog.znsun.com/2007/04/547/wp-cache-optimization-wordperss-optimization-manual-2#comments</comments>
		<pubDate>Fri, 06 Apr 2007 14:53:47 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2007/04/547</guid>
		<description><![CDATA[
关键词：WP-Cache，Wordpress，优化，加速，Gzip 
注：
♣ 本文是加速Wordpress－终极优化手册一文的补充，强烈建议您先参考终极优化手册后再看此文。
♣ 本文的方法只适用于单作者（不开放注册）的wordpress系统（但我相信目前绝大多数wordpress系统都是不开放注册的）。
加载WP-Cache插件是wordpress中最为常用的一种优化方式，同时，php程序本身也提供了一种非常强大的优化方式，也就是Gzip压缩传输。非常遗憾的是，WP-Cache插件要求关闭wordpress的内置gzip压缩功能。因此，我们要实现的就是在WP-Cache中使用Gzip的功能。这一思路的实现，我在终极优化手册中已经提到：
打开wp-cache-phase1.php，大概在35行左右找到如下代码：
foreach ($meta-&#62;headers as $header) {
header($header);
在此代码前添加下面的代码：

if ( extension_loaded('zlib') ) ob_start('ob_gzhandler');
OK，现在问题来了。
让我们深入分析一下加了Gzip功能的WP-Cache的工作原理：
首先，WP-Cache在用户第一次访问页面的时候，将生成的页面传输给用户，同时在服务器上缓存了页面，这第一次传输给用户的页面是没有用gzip方式压缩的。
第二，我们看wp-cache-phase1.php中的最后一个函数function wp_cache_get_cookies_values()，不难发现wp-cache是根据访问者的email来判断是否为同一用户的。问题就在WP-Cache的的这个判断机制上：
WP-Cache为不同的用户生成了不同的缓存页面。而这些用户第一次访问某一页面时候，WP-Cache发送的都是未经过Gzip压缩的页面。因此，除非这些用户再次访问该页面，否则他们都是享受不到Gzip压缩带来的好处的。
既然知道了问题的症结所在，解决的方法也就显而易见了。我们可以换用判断用户网址的办法来判断是否为同一用户，因为大多数用户都不会填写网址。这样用户A访问后，其他的BCDE等用户来访问，系统一般都会将用Gzip压缩过的页面传输给他，大大提高了缓存页面的利用率。但是这会产生一个新的问题：当用户A访问某一页面后，缓存页面中也就保留了他填写的用户名和email地址（comments.php中用php来读取缓存）。这个问题很好解决，我们可以用javascript来读取缓存。
现在要做的就是修改代码了：
在wp-cache-phase1.php文件中找到如下代码：
if (preg_match("/^wordpress&#124;^comment_author_email_/", $key)) {
在前面加上//将其comment out，随后在该行的下一行添加如下代码：
if (preg_match("/^wordpress&#124;^comment_author_url_/", $key)) {
接着，打开你的theme中的comments.php文件，找到填写comment的表单部分，这里以theme/default下的文件为例：
&#60;input type="text" name="author" id="author" value="&#60;?php echo $comment_author; ?&#62;"
将其中的 value="&#60;?php echo $comment_author; ?&#62;"删除。并以此类推，删除表单中email和url的value项。
随后，我们在紧跟表单后的&#60;?php endif; ?&#62;之前添加如下的代码，用以读取用户的Cookies：
&#60;script type=&#34;text/javascript&#34;&#62;
//&#60;![CDATA[
// Set cookies
var aCookie = document.cookie.split(&#34;; &#34;);
function GetCookie(sName, id)
{
// cookies are separated by semicolons
var something = document.getElementById(id);
// set value to NULL for [...]]]></description>
			<content:encoded><![CDATA[<p>
关键词：<em>WP-Cache</em>，<em>Wordpress</em>，<em>优化</em>，<em>加速</em>，<em>Gzip </em></p>
<p>注：<br />
♣ 本文是<a href="http://blog.znsun.com/2007/03/504" target="_blank">加速Wordpress－终极优化手册</a>一文的补充，强烈建议您先参考<a href="http://blog.znsun.com/2007/03/504" target="_blank">终极优化手册</a>后再看此文。<br />
♣ 本文的方法只适用于单作者（不开放注册）的wordpress系统（但我相信目前绝大多数wordpress系统都是不开放注册的）。</p>
<p>加载<a href="http://mnm.uib.es/gallir/wp-cache-2/" target="_blank">WP-Cache</a>插件是wordpress中最为常用的一种优化方式，同时，php程序本身也提供了一种非常强大的优化方式，也就是Gzip压缩传输。非常遗憾的是，WP-Cache插件要求关闭wordpress的内置gzip压缩功能。因此，我们要实现的就是在WP-Cache中使用Gzip的功能。这一思路的实现，我在<a href="http://blog.znsun.com/2007/03/504" target="_blank">终极优化手册</a>中已经提到：</p>
<p>打开wp-cache-phase1.php，大概在35行左右找到如下代码：</p>
<p class="code">foreach ($meta-&gt;headers as $header) {<br />
header($header);</p>
<p>在此代码前添加下面的代码：
</p>
<p class="code">if ( extension_loaded('zlib') ) ob_start('ob_gzhandler');</p>
<p><font color="#ff99cc">OK，现在问题来了。</font><br />
让我们深入分析一下加了Gzip功能的WP-Cache的工作原理：<br />
首先，WP-Cache在用户第一次访问页面的时候，将生成的页面传输给用户，同时在服务器上缓存了页面，这第一次传输给用户的页面是没有用gzip方式压缩的。<br />
第二，我们看wp-cache-phase1.php中的最后一个函数function wp_cache_get_cookies_values()，不难发现wp-cache是根据访问者的email来判断是否为同一用户的。<font color="#ff99cc">问题就在WP-Cache的的这个判断机制上：</font></p>
<p>WP-Cache为不同的用户生成了不同的缓存页面。而这些用户第一次访问某一页面时候，WP-Cache发送的都是未经过Gzip压缩的页面。<font color="#ff99cc">因此，除非这些用户再次访问该页面，否则他们都是享受不到Gzip压缩带来的好处的。</font></p>
<p>既然知道了问题的症结所在，解决的方法也就显而易见了。我们可以换用判断用户网址的办法来判断是否为同一用户，因为大多数用户都不会填写网址。这样用户A访问后，其他的BCDE等用户来访问，系统一般都会将用Gzip压缩过的页面传输给他，大大提高了缓存页面的利用率。但是这会产生一个<font color="#ff99cc">新的问题</font>：当用户A访问某一页面后，缓存页面中也就保留了他填写的用户名和email地址（comments.php中用php来读取缓存）。这个问题很好解决，我们可以<a href="http://www.leexuan.com/2006/05/javascript_cookie.html" target="_blank">用javascript来读取缓存</a>。</p>
<p>现在要做的就是修改代码了：<br />
<font color="#ff99cc">在wp-cache-phase1.php文件中找到如下代码</font>：</p>
<p class="code">if (preg_match("/^wordpress|^comment_author_email_/", $key)) {</p>
<p>在前面加上//将其comment out，随后在该行的下一行添加如下代码：</p>
<p class="code">if (preg_match("/^wordpress|^comment_author_url_/", $key)) {</p>
<p><font color="#ff99cc">接着，打开你的theme中的comments.php文件，找到填写comment的表单部分，这里以theme/default下的文件为例：</font></p>
<p class="code">&lt;input type="text" name="author" id="author" value="&lt;?php echo $comment_author; ?&gt;"</p>
<p>将其中的 value="&lt;?php echo $comment_author; ?&gt;"删除。并以此类推，删除表单中email和url的value项。<br />
随后，我们在紧跟表单后的&lt;?php endif; ?&gt;之前添加如下的代码，用以读取用户的Cookies：</p>
<pre class="brush: php;">&lt;script type=&quot;text/javascript&quot;&gt;
//&lt;![CDATA[
// Set cookies
var aCookie = document.cookie.split(&quot;; &quot;);
function GetCookie(sName, id)
{
// cookies are separated by semicolons
var something = document.getElementById(id);
// set value to NULL for new visitors
something.value=&quot;&quot;;
if(!something) return 0;
for (var i=0; i &lt; aCookie.length; i++)
{
// a name alue pair (a crumb) is separated by an equal sign
var aCrumb = aCookie[i].split(&quot;=&quot;);
if (sName == aCrumb[0])
{
//reading cookie value
something.value=unescape(aCrumb[1]);
return 1;
}
}
// a cookie with the requested name does not exist
return 0;
}
GetCookie(&quot;comment_author_8e11b42cc2f3a74aac664cc9afa5baf7&quot;, &quot;author&quot;);
GetCookie(&quot;comment_author_email_8e11b42cc2f3a74aac664cc9afa5baf7&quot;, &quot;email&quot;);
GetCookie(&quot;comment_author_url_8e11b42cc2f3a74aac664cc9afa5baf7&quot;, &quot;url&quot;);
//]]&gt;
&lt;/script&gt;
</pre>
<p>请注意，其中的"comment_author_"中的长串字符为系统生成，请自行查找后替换。（我是用firefox的web developer插件看cookie的名字的）OK，把所有修改过的文件保存一下，上传，试试下效果吧。</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsun.com/2007/04/547/wp-cache-optimization-wordperss-optimization-manual-2">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsun.com/2007/04/547/wp-cache-optimization-wordperss-optimization-manual-2#comments">14 comments</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2007/04/547/wp-cache-optimization-wordperss-optimization-manual-2/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Ajax Comments</title>
		<link>http://blog.znsun.com/plugins-list/ajax-comments-reply</link>
		<comments>http://blog.znsun.com/plugins-list/ajax-comments-reply#comments</comments>
		<pubDate>Sun, 18 Mar 2007 23:40:55 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[我的页面]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[电脑技术]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/ajax-comments-reply/</guid>
		<description><![CDATA[本文永久地址：
http://blog.znsun.com/plugins-list/ajax-comments-reply/
MSN留言风格的Ajax Commens-Reply插件
(MSN Type Ajax Comments-Reply Plugin) 

点击下载，版本：1.5 ，最后更新于2007/04/23

原创于懶懶喵日記，后Zhang-Zi根据此版本制作了非常优秀的Ajax Comments-Reply插件，现在这个版本实质是将Zhang-Zi的两个版本（一个是以前的实现msn风格的留言版本，另一个是他现在用的版本）合二为一。因此，这里特别感谢两位作者之前所作的大量努力。此版本主要实现的功能如下：

可以配合Smiley Javascript Buttons，插入表情符号
使用回复无需刷新
可以直接在各种页面上（主页，多文章页面，单篇文章）回复留言（默认为5层嵌套），使得讨论更有针对性

修订版1.5主要改了一下几个方面：

修正了代码中的若干错误
加入了set_innerHTML函数，使得innerHTML中的js代码也可以被运行。现在在主页或者单篇日志上均可直接使用Smiley JS Buttons的表情代码（要求系统已经安装了Smiley JS Buttons插件）。

修订版1.1β主要改了一下几个方面：

修改了原插件必须放置在wordpress根目录下的缺点，同时保留了prototype.lite等函数（因为我用的litebox中也用到了prototype.lite【注】litebox是lightbox的精简版本，用以实现图片显示的特殊效果）。
整合了Zhang-Zi的两个不同版本的插件，合并了部分代码，使之达到现在的显示效果。
修改了留言栏的式样，使得符合我的blog风格。
压缩了javascript代码，其中css文件没有压缩，如果有需要，可以参考我的文章：加速Wordpress
加上了Smiley JS Buttons的表情代码，如果你安装了Smiley JS Buttons，可以在单页留言中使用表情符号。

压缩包内容，包含在一个comment-reply的文件夹：

readme.html   //Read Me
ajax-comments.php  //实现在多文章页面上留言
comments.php       //实现单页面上的留言
comment.css        // css文件，控制评论栏效果
comment.js, parse.js.php     //已压缩的 javascript文件
moo.ajax.js, prototype.lite.js, moo.fx.js  //prototype.lite 模块
comments-ajax.php   [...]]]></description>
			<content:encoded><![CDATA[<p><font color="#00ff00">本文永久地址：<br />
<a href="http://blog.znsun.com/plugins-list/ajax-comments-reply/">http://blog.znsun.com/plugins-list/ajax-comments-reply/</a></font></p>
<p><font color="#00ff00">MSN留言风格的Ajax Commens-Reply插件<br />
(</font><font color="#00ff00">MSN Type Ajax Comments-Reply Plugin)<a href="http://blog.znsun.com/plugins-list/ajax-comments-reply/"></a> </font></p>
<ul>
<li><a href="http://znsun.com/Download/2007/20070423_ajax_comment_reply.rar">点击下载</a>，<strong><font color="#ff00ff">版本：1.5 ，</font><font color="pink">最后更新于2007/04/23</font></strong></li>
</ul>
<p>原创于<a href="http://blog.nahoya.com/archives/2006_04/109" target="_blank">懶懶喵日記</a>，后<a href="http://zhiqiang.org/blog/" target="_blank">Zhang-Zi</a>根据此版本制作了非常优秀的<a href="http://zhiqiang.org/blog/plugin/ajaxcomment/" target="_blank">Ajax Comments-Reply</a>插件，现在这个版本实质是将Zhang-Zi的两个版本（一个是以前的实现msn风格的留言版本，另一个是他现在用的版本）合二为一。因此，这里特别感谢两位作者之前所作的大量努力。此版本主要实现的功能如下：</p>
<ul>
<li>可以配合<a href="http://aranea.zuavra.net/index.php/18/">Smiley Javascript Buttons</a>，插入表情符号</li>
<li>使用回复无需刷新</li>
<li>可以直接在各种页面上（主页，多文章页面，单篇文章）回复留言（默认为5层嵌套），使得讨论更有针对性</li>
</ul>
<p><font color="#ff9900"><strong><a href="http://znsun.com/Download/2007/20070423_ajax_comment_reply.rar" target="_blank">修订版1.5</a>主要改了一下几个方面：</strong></font></p>
<ul>
<li>修正了代码中的若干错误</li>
<li>加入了set_innerHTML函数，使得innerHTML中的js代码也可以被运行。现在在主页或者单篇日志上均可直接使用<a href="http://aranea.zuavra.net/index.php/18/" target="_blank">Smiley JS Buttons</a>的表情代码（要求系统已经安装了<a href="http://aranea.zuavra.net/index.php/18/" target="_blank">Smiley JS Buttons</a>插件）。</li>
</ul>
<p><font color="#ff9900"><strong><a href="http://znsun.com/Download/2007/20070318_ajax_comment_reply.rar" target="_blank">修订版1.1β</a>主要改了一下几个方面：</strong></font></p>
<ul>
<li>修改了原插件必须放置在wordpress根目录下的缺点，同时保留了prototype.lite等函数（因为我用的<a href="http://www.doknowevil.net/litebox/" target="_blank">litebox</a>中也用到了prototype.lite【注】litebox是<a href="http://www.huddletogether.com/projects/lightbox/" target="_blank">lightbox</a>的精简版本，用以实现图片显示的特殊效果）。</li>
<li>整合了Zhang-Zi的两个不同版本的插件，合并了部分代码，使之达到现在的显示效果。</li>
<li>修改了留言栏的式样，使得符合我的blog风格。</li>
<li>压缩了javascript代码，其中css文件没有压缩，如果有需要，可以参考我的文章：<a href="http://blog.znsun.com/2007/03/10/504" target="_blank">加速Wordpress</a></li>
<li>加上了<a href="http://aranea.zuavra.net/index.php/18/" target="_blank">Smiley JS Buttons</a>的表情代码，如果你安装了Smiley JS Buttons，可以在单页留言中使用表情符号。</li>
</ul>
<p><font color="#ff9900"><strong>压缩包内容，包含在一个comment-reply的文件夹：</strong></font></p>
<ol>
<li>readme.html   //Read Me</li>
<li>ajax-comments.php  //实现在多文章页面上留言</li>
<li>comments.php       //实现单页面上的留言</li>
<li>comment.css        // css文件，控制评论栏效果</li>
<li>comment.js, parse.js.php     //已压缩的 javascript文件</li>
<li>moo.ajax.js, prototype.lite.js, moo.fx.js  //prototype.lite 模块</li>
<li>comments-ajax.php     //ajax留言处理</li>
<li>comment-reply.php      //插件控制</li>
<li>working.gif   //Loading留言时候的动态图标</li>
<li>unzip文件夹      //未压缩过的javascript版本</li>
</ol>
<p><font color="#ff6600"><strong>插件安装使用：</strong></font></p>
<ol>
<li>从上面链接下载安装文件，解压缩后得到一个comment-reply文件夹</li>
<li>把文件夹的comments.php放到模版目录下，覆盖同名文件—请备份旧的comments.php</li>
<li>将comment-reply文件夹整个放入插件目录。结构如下：<br />
---------------Plugins/<br />
----------------------/comment-reply/<br />
----------------------------comment-reply.php 等文件</li>
<li>到管理界面启用Ajax Comments-Reply修订版插件。</li>
<li>在index.php中用以下代码显示评论：
<p class="code">&lt;?php $pid=$post-&gt;ID; $cnum = get_comments_number(); showcomment($pid, $cnum);?&gt;</p>
</li>
</ol>
<p><font color="#ff6600"><strong>插件卸载：</strong></font></p>
<ol>
<li>将模版目录下备份的comments.php复原。</li>
<li>管理界面停用插件或者直接删除此插件文件。</li>
</ol>
<p><font color="#ff99cc">欢迎使用。有任何问题，可在此留言，或者email 到 "qmqsun(AT)<a href="http://gmail.com" title="http://gmail.com" target="_blank">gmail.com</a>"，当然，也可以去问Zhang-Zi，他的G-talk是"zhang(AT)<a href="http://zhiqiang.org" title="http://zhiqiang.org" target="_blank">zhiqiang.org</a>"。 <img src='http://blog.znsun.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </font></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsun.com/plugins-list/ajax-comments-reply">Permalink</a> |
	  <a href="http://blog.znsun.com/category/my-pages" title="View all posts in 我的页面" rel="category tag">我的页面</a> | 
	  <a href="http://blog.znsun.com/plugins-list/ajax-comments-reply#comments">44 comments</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/plugins-list/ajax-comments-reply/feed</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>WP Real Static Homepage</title>
		<link>http://blog.znsun.com/plugins-list/wp-real-static-homepage</link>
		<comments>http://blog.znsun.com/plugins-list/wp-real-static-homepage#comments</comments>
		<pubDate>Sun, 18 Mar 2007 23:32:30 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[我的页面]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[电脑技术]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/plugins-list/wp-real-static-homepage/</guid>
		<description><![CDATA[PLEASE Scroll down for Chinese version
This plugin enables the wp system to convert your dynamic homepage to static index.html, more importantly, keep the content up to date. It can speed up the loading for your homepage.

Download (Updated 2007.03.16)

Readme:

Plugin WP-Cron is needed for this plugin, I've packed WP-Cron v 1.4 in the zip file.
Please upzip all [...]]]></description>
			<content:encoded><![CDATA[<p><strong><font color="pink" size="+1">PLEASE Scroll down for Chinese version</font></strong></p>
<p><font color="pink" size="+1">This plugin </font>enables the wp system to convert your dynamic homepage to static index.html, more importantly, keep the content up to date. It can speed up the loading for your homepage.</p>
<ul>
<li><a href="http://znsun.com/Download/2007/20070316_wp_static_homepage.rar">Download</a> (Updated 2007.03.16)</li>
</ul>
<p><strong>Readme:</strong></p>
<ol>
<li>Plugin <a href="http://www.skippy.net/blog/category/wordpress/plugins/wp-cron/" target="_blank">WP-Cron</a> is needed for this plugin, I've packed WP-Cron v 1.4 in the zip file.<br />
Please upzip all the files to plugins/static-index, so that it look like:<br />
------plugins/<br />
------------static-index/<br />
----------------static.php<br />
----------------wp-cron-static-index.php<br />
----------------wp-cron.php</li>
<li>Active two plugins :WP-cron and WP-Cron Static Homepage.</li>
<li>Create a file named index.html in your blog root folder, set<br />
666 permissions for it.</li>
</ol>
<p>Well,  the system will update index.html automatically (per 15 mins), you may hack wp-cron.php at line 49 to change the time for scheduled exection actions.</p>
<p>More Tips:</p>
<ol>
<li>You may use the following php to refresh homepage when comments come in.
<p class="code">&lt;?php<br />
include (get_settings('siteurl') . "/wp-content/plugins/static-index/static.php");<br />
?&gt;</p>
</li>
<li>The following script is to demo how to  set cookies in the html files.
<p class="code">&lt;script type="text/javascript"&gt;<br />
function GetCookie(sName, id)<br />
{<br />
// cookies are separated by semicolons<br />
var something = document.getElementById(id);<br />
if(!something) return 0;<br />
for (var i=0; i &lt; aCookie.length; i++)<br />
{<br />
// a name alue pair (a crumb) is separated by an equal sign<br />
var aCrumb = aCookie[i].split("=");<br />
if (sName == aCrumb[0])<br />
{<br />
if(sName=="comment_author_10add94cfc29a64b08306c8a8f9edb30")<br />
something.value = decodeURI(aCrumb[1]);<br />
else<br />
something.value=unescape(aCrumb[1]);<br />
return 1;<br />
}<br />
}<br />
// a cookie with the requested name does not exist<br />
return 0;<br />
}<br />
//please fill in with your own cookie id<br />
GetCookie("comment_author_8e11b42cc2f3a74aac664cc9afa5baf7", "authorname");<br />
GetCookie("comment_author_email_8e11b42cc2f3a74aac664cc9afa5baf7", "email");<br />
GetCookie("comment_author_url_8e11b42cc2f3a74aac664cc9afa5baf7", "url");&lt;/script&gt;</p>
</li>
</ol>
<p><!--inline-more--></p>
<p><font color="pink" size="+1">WP Static Homepage</font>（首页静态化）插件的目的是为了将WP的index.php转化为index.html，从而实现首页静态化的目的，提高主页的浏览速度。  如果您想要全站静态化，请参考<a href="http://zhiqiang.org/blog/537.html" target="_blank">阅微堂</a>的文章。</p>
<ul>
<li><a href="http://znsun.com/Download/2007/20070316_wp_static_homepage.rar">插件下载地址</a>。 <font color="#cc99ff">（最后更新于2007.03.16）</font></li>
</ul>
<p>安装说明：</p>
<ol>
<li><font color="#ffcc99">您需要安装<a href="http://www.skippy.net/blog/category/wordpress/plugins/wp-cron/" target="_blank">WP-Cron</a>插件，在上述的下载地址中已经包含该插件的1.4版本，您也可以自行下载。</font></li>
<li><font color="#ffcc99">将下载文件中的所有文件解压缩后上传到plugins下的static-index目录中，目录结构如下：<br />
------plugins/<br />
----static-index/<br />
------------static.php<br />
------------wp-cron-static-index.php<br />
------------wp-cron.php</font></li>
<li><font color="#ffcc99">激活wp-cron，WP-Cron Static Homepage两个插件。</font></li>
<li><font color="#ffcc99">在blog根目录建立一个index.html的文件，设置属性为666。 </font></li>
</ol>
<p>运行之后，系统会每镉15分钟将index.php的内容刷新为index.html，提高浏览速度。  题外话：</p>
<ol>
<li>关于留言问题。 留言系统我采用的也是阅微堂的<a href="http://zhiqiang.org/blog/301.html">基于MSN风格的留言系统</a>，该系统基于ajax技术，因此可以在静态页面上使用。如果要使用该留言系统，建议在里面的comment-reply.php文件中包含以下语句，保证留言之后会重新刷新静态主页。
<p class="code">&lt;?php include (get_settings('siteurl') . "/wp-content/plugins/static-index/static.php"); ?&gt;</p>
</li>
<li>关于cookies读取，在<a href="http://zhiqiang.org/blog/537.html" target="_blank">阅微堂</a>的文章中已经有详细的阐述，这里借花献佛，也就是加入如下代码：
<p class="code">&lt;script type="text/javascript"&gt;<br />
function GetCookie(sName, id)<br />
{<br />
// cookies are separated by semicolons<br />
var something = document.getElementById(id);<br />
if(!something) return 0;<br />
for (var i=0; i &lt; aCookie.length; i++)<br />
{<br />
// a name alue pair (a crumb) is separated by an equal sign<br />
var aCrumb = aCookie[i].split("=");<br />
if (sName == aCrumb[0])<br />
{<br />
if(sName=="comment_author_10add94cfc29a64b08306c8a8f9edb30")<br />
something.value = decodeURI(aCrumb[1]);<br />
else<br />
something.value=unescape(aCrumb[1]);<br />
return 1;<br />
}<br />
}<br />
// a cookie with the requested name does not exist<br />
return 0;<br />
}<br />
以下为我的cookie设置，用户请自行寻找自己的cookie id<br />
GetCookie("comment_author_8e11b42cc2f3a74aac664cc9afa5baf7", "authorname");<br />
GetCookie("comment_author_email_8e11b42cc2f3a74aac664cc9afa5baf7", "email");<br />
GetCookie("comment_author_url_8e11b42cc2f3a74aac664cc9afa5baf7", "url");&lt;/script&gt;</p>
</li>
</ol>
<p>参考文献：</p>
<ol>
<li><a href="http://zhiqiang.org/blog/" target="_blank">阅微堂</a></li>
<li><a href="http://www.skippy.net/blog/category/wordpress/plugins/wp-cron/" target="_blank">WP-Cron</a></li>
</ol>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsun.com/plugins-list/wp-real-static-homepage">Permalink</a> |
	  <a href="http://blog.znsun.com/category/my-pages" title="View all posts in 我的页面" rel="category tag">我的页面</a> | 
	  <a href="http://blog.znsun.com/plugins-list/wp-real-static-homepage#comments">7 comments</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/plugins-list/wp-real-static-homepage/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>My Plugins List</title>
		<link>http://blog.znsun.com/plugins-list</link>
		<comments>http://blog.znsun.com/plugins-list#comments</comments>
		<pubDate>Sun, 18 Mar 2007 23:28:54 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[我的页面]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/plugins-lists/</guid>
		<description><![CDATA[下面是我安装的插件列表，其中包含了我自己写或者修改的两个插件，如果你有兴趣下载，请点击左侧My Plugins List下文章。



Plugin 


Description 



Ajax
Comments-Reply
此版本实质是将Zhang-Zi的两个ajax
comments版本（一个是以前的实现msn风格的留言版本，另一个是他现在用的版本）合二为一，从而实现多篇文章（包括主页）存在时的无延迟留言效果。目前是Chaney
SUN的版本。 By Zhang-Zi.


Akismet
Akismet checks your comments against the Akismet web service to see if they
look like spam or not. You need a WordPress.com
API key to use it. You can review the spam it catches under “Comments.” To
show off your Akismet stats just put &#60;?php akismet_counter(); ?&#62; in your
template. By Matt
Mullenweg.


Auto-hyperlink
URLs
Auto-hyperlink text [...]]]></description>
			<content:encoded><![CDATA[<p><font color="#ffcc99">下面是我安装的插件列表，其中包含了我自己写或者修改的两个插件，如果你有兴趣下载，请点击左侧My Plugins List下文章。</font></p>
<table border="1" bordercolor="#404040" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100">
<p align="center"><strong>Plugin</strong><strong> </strong></p>
</td>
<td>
<p align="center"><strong>Description</strong><strong> </strong></p>
</td>
</tr>
<tr>
<td><strong><a href="http://blog.znsun.com/ajax-comments-reply" title="Visit plugin homepage">Ajax<br />
Comments-Reply</a></strong></td>
<td>此版本实质是将<a href="http://zhiqiang.org/blog/plugin/ajaxcomment/">Zhang-Zi</a>的两个ajax<br />
comments版本（一个是以前的实现msn风格的留言版本，另一个是他现在用的版本）合二为一，从而实现多篇文章（包括主页）存在时的无延迟留言效果。目前是<a href="http://blog.znsun.com/ajax-comments-reply">Chaney<br />
SUN的版本</a>。 By <a href="http://zhiqiang.org/blog" title="Visit author homepage">Zhang-Zi</a>.</td>
</tr>
<tr>
<td><strong><a href="http://akismet.com/" title="Visit plugin homepage">Akismet</a></strong></td>
<td>Akismet checks your comments against the Akismet web service to see if they<br />
look like spam or not. You need a <a href="http://wordpress.com/api-keys/">WordPress.com<br />
API key</a> to use it. You can review the spam it catches under “Comments.” To<br />
show off your Akismet stats just put &lt;?php akismet_counter(); ?&gt; in your<br />
template. By <a href="http://photomatt.net/" title="Visit author homepage">Matt<br />
Mullenweg</a>.</td>
</tr>
<tr>
<td><strong><a href="http://www.coffee2code.com/wp-plugins/" title="Visit plugin homepage">Auto-hyperlink<br />
URLs</a></strong></td>
<td>Auto-hyperlink text URLs in post content and comment text to the URL they<br />
reference. Does NOT try to hyperlink already hyperlinked URLs. Improves WordPress’s<br />
default make_clickable function, along with adding some configuration options.<br />
By <a href="http://www.coffee2code.com" title="Visit author homepage">Scott Reilly</a>.</td>
</tr>
<tr>
<td><strong><a href="http://www.chroder.com/archives/2005/12/28/wordpress-plugin-inline-collapsible-more-link/" title="Visit plugin homepage">Collapsible<br />
More Link</a></strong></td>
<td>Allows you to click a link and instantly display the rest of your post instead<br />
of loading the ‘view more’ page. By <a href="http://www.chroder.com/" title="Visit author homepage">Chroder</a>.</td>
</tr>
<tr>
<td><strong><a href="http://www.sonsofskadi.net/extended-live-archive/" title="Visit plugin homepage">Extended<br />
Live Archives (Modified)</a></strong></td>
<td>Modified by <a href="http://zhiqiang.org/blog/">Zhang-Zi</a>. Implements a<br />
dynamic archive. Visit <a href="http://blog.znsun.com/wp-admin/options-general.php?page=af-extended-live-archive/af-extended-live-archive-options.php">the<br />
ELA option panel</a> to initialize the plugin. By <a href="http://www.sonsofskadi.net/" title="Visit author homepage">Arnaud<br />
Froment</a>.</td>
</tr>
<tr>
<td><strong><a href="http://www.arnebrachhold.de/redir/sitemap-home/" title="Visit plugin homepage">Google<br />
(XML) Sitemaps</a></strong></td>
<td>This generator will create a <a href="http://sitemaps.org" title="http://sitemaps.org" target="_blank">sitemaps.org</a> compliant sitemap of your WordPress<br />
blog which is supported By Google, MSN Search and YAHOO. <a href="http://blog.znsun.com/wp-admin/options-general.php?page=sitemap.php">Configuration<br />
Page</a> By <a href="http://www.arnebrachhold.de/" title="Visit author homepage">Arne<br />
Brachhold</a>.</td>
</tr>
<tr>
<td><strong><a href="http://fredfred.net/skriker/index.php/iimage-browser" title="Visit plugin homepage">IImage<br />
Browser</a></strong></td>
<td>This plugin adds an “IImage Browser” button to the Quicktags area which opens<br />
an image browser to select from all previously uploaded images and add the appropriate<br />
code to the post. By <a href="http://fredfred.net/skriker/" title="Visit author homepage">Martin<br />
Chlupáč</a>.</td>
</tr>
<tr>
<td><strong><a href="http://aranea.zuavra.net/index.php/19/" title="Visit plugin homepage">JS<br />
Toggle Boxes</a></strong></td>
<td>Reduces clutter by placing on/off JavaScript toggles on the page elements<br />
of your choice. By <a href="http://aranea.zuavra.net/" title="Visit author homepage">Skippy,<br />
skippy zuavra net</a>.</td>
</tr>
<tr>
<td><strong><a href="http://www.quakemachine.com/blog/myplugins/media-insert/" title="Visit plugin homepage">Media<br />
Insert</a></strong></td>
<td>Create ActiveX Media code by enclosing the info in <em>%filename%</em>,<em>%width%</em>,<em>%height%</em>,<em>%detail%</em>.<br />
By <a href="http://www.quakemachine.com/blog/" title="Visit author homepage">AvP</a>.</td>
</tr>
<tr>
<td><strong><a href="http://txfx.net/code/wordpress/page-links-to/" title="Visit plugin homepage">Page<br />
Links To</a></strong></td>
<td>Allows you to set a “links_to” meta key with a URI value that will be be used<br />
when listing WP pages. Good for setting up navigational links to non-WP sections<br />
of your By <a href="http://txfx.net/" title="Visit author homepage">Mark Jaquith</a>.</td>
</tr>
<tr>
<td><strong><a href="http://blog.sparanoid.com/archive/wordpress/quotmarks-replacer/" title="Visit plugin homepage">Quotmarks<br />
Replacer</a></strong></td>
<td>Convert all SBC quotation marks and suspension points into DBC case. 解决 WordPress<br />
的全角引号问题，将全角的单引、和双引号和省略号替换成半角的格式，使后台输入的引号、省略号格式与前台读者浏览的引号格式保持一致。 By <a href="http://blog.sparanoid.com/" title="Visit author homepage">Sparanoid</a>.</td>
</tr>
<tr>
<td><strong><a href="http://aranea.zuavra.net/index.php/27/" title="Visit plugin homepage">Sidebar<br />
Slider</a></strong></td>
<td>Makes page elements slide up and down as you scroll, so you can always have<br />
them within easy reach. By <a href="http://aranea.zuavra.net/" title="Visit author homepage">Skippy,<br />
skippy zuavra net</a>.</td>
</tr>
<tr>
<td><strong><a href="http://aranea.zuavra.net/index.php/18/" title="Visit plugin homepage">Smiley<br />
Javascript Buttons</a></strong></td>
<td>Lets you display a row of clickable smilies next to your comment textarea.<br />
Thanks to Priyadi Iman Nurcahyo for the inspiration. By <a href="http://aranea.zuavra.net/" title="Visit author homepage">Skippy,<br />
skippy zuavra net</a>.</td>
</tr>
<tr>
<td><strong><a href="http://chunkymoon.com/wordpress/?p=1" title="Visit plugin homepage">Ultimate<br />
Gallery2 Slideshow</a></strong></td>
<td><a href="http://gallery.menalto.com">Gallery2</a> integration for a fade-in<br />
slideshow typically used in the Sidebar By <a href="http://chunkymoon.com/" title="Visit author homepage">Steven<br />
Chung</a>.</td>
</tr>
<tr>
<td><strong><a href="http://www.neato.co.nz/ultimate-tag-warrior/" title="Visit plugin homepage">Ultimate<br />
Tag Warrior</a></strong></td>
<td>Ultimate Tag Warrior is a tagging plugin, that’s heavy on tag visualisation.<br />
I Like Pi! By <a href="http://www.neato.co.nz" title="Visit author homepage">Christine<br />
Davis</a>.</td>
</tr>
<tr>
<td><strong><a href="http://www.ilfilosofo.com/blog/wp-db-backup" title="Visit plugin homepage">WordPress<br />
Database Backup</a></strong></td>
<td>On-demand backup of your WordPress database. Navigate to <a href="http://blog.znsun.com/wp-admin/edit.php?page=wp-db-backup.php">Manage<br />
→ Backup</a> to get started. By <a href="http://www.skippy.net/">Scott Merrill</a> and <a href="http://www.ilfilosofo.com/blog/">Austin<br />
Matzko</a>.</td>
</tr>
<tr>
<td><strong><a href="http://mnm.uib.es/gallir/wp-cache-2/" title="Visit plugin homepage">wp-cache</a></strong></td>
<td>Very fast cache module. It’s composed of several modules, this plugin can<br />
configure and manage the whole system. Once enabled, go to “Options” and select<br />
“WP-Cache”. By <a href="http://mnm.uib.es/gallir/" title="Visit author homepage">Ricardo<br />
Galli Granada</a>.</td>
</tr>
<tr>
<td><strong><a href="http://www.lesterchan.net/portfolio/programming.php" title="Visit plugin homepage">WP-DBManager</a></strong></td>
<td>Manages your Wordpress database. Allows you to optimize database, backup database,<br />
restore database, delete backup database , drop/empty tables and run selected<br />
queries. By <a href="http://www.lesterchan.net" title="Visit author homepage">GaMerZ</a>.</td>
</tr>
<tr>
<td><strong><a href="http://www.lesterchan.net/portfolio/programming.php" title="Visit plugin homepage">WP-PageNavi</a></strong></td>
<td>Adds a more advanced paging navigation your WordPress blog. By <a href="http://www.lesterchan.net" title="Visit author homepage">GaMerZ</a>.</td>
</tr>
<tr>
<td><strong><a href="http://www.boriel.com/?page_id=12" title="Visit plugin homepage">Xspf_player</a></strong></td>
<td>Provides a quick a simple way to put MP3 soundtracks in your wordpress site.<br />
Music can be either local or remote (http). Uses free flash <a href="http://musicplayer.sourceforge.net">XSPF<br />
music player</a>. By <a href="http://www.boriel.com" title="Visit author homepage">Jose<br />
Rodriguez (a.k.a. Boriel)</a>.</td>
</tr>
</table>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsun.com/plugins-list">Permalink</a> |
	  <a href="http://blog.znsun.com/category/my-pages" title="View all posts in 我的页面" rel="category tag">我的页面</a> | 
	  <a href="http://blog.znsun.com/plugins-list#comments">No comment</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/plugins-list/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax Comments Reply</title>
		<link>http://blog.znsunimage.com/plugins-list/ajax-comments-reply/</link>
		<comments>http://blog.znsunimage.com/plugins-list/ajax-comments-reply/#comments</comments>
		<pubDate>Sun, 18 Mar 2007 16:57:06 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[电脑技术]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2007/03/19/515</guid>
		<description><![CDATA[本文永久地址：
http://blog.znsun.com/plugins-list/ajax-comments-reply/
MSN留言风格的Ajax Commens-Reply插件
(MSN Type Ajax Comments-Reply Plugin) 

点击下载，版本：1.0β ，最近更新于2007/03/18

原创于懶懶喵日記，后Zhang-Zi根据此版本制作了非常优秀的Ajax Comments-Reply插件，现在这个版本实质是将Zhang-Zi的两个版本（一个是以前的实现msn风格的留言版本，另一个是他现在用的版本）合二为一。因此，这里特别感谢两位作者之前所作的大量努力。此版本主要实现的功能如下：

 回复无需刷新。


可以直接在各种页面上（主页，多文章页面，单篇文章）回复留言（默认为5层嵌套），使得讨论更有针对性。

此修订版主要改了一下几个方面：

修改了原插件必须放置在wordpress根目录下的缺点，同时保留了prototype.lite等函数（因为我用的litebox中也用到了prototype.lite【注】litebox是lightbox的精简版本，用以实现图片显示的特殊效果）。
整合了Zhang-Zi的两个不同版本的插件，合并了部分代码，使之达到现在的显示效果。
修改了留言栏的式样，使得符合我的blog风格。
压缩了javascript代码，其中css文件没有压缩，如果有需要，可以参考我的文章：加速Wordpress

压缩包内容，包含在一个comment-reply的文件夹：

readme.html   //Read Me
ajax-comments.php  //实现在多文章页面上留言
comments.php       //实现单页面上的留言
comment.css        // css文件，控制评论栏效果
comment.js, parse.js.php     //已压缩的 javascript文件
moo.ajax.js, prototype.lite.js, moo.fx.js  //prototype.lite 模块
comments-ajax.php     //ajax留言处理
comment-reply.php      //插件控制
working.gif [...]]]></description>
			<content:encoded><![CDATA[<p><font color="#00ff00">本文永久地址：<br />
<a href="http://blog.znsun.com/plugins-list/ajax-comments-reply/">http://blog.znsun.com/plugins-list/ajax-comments-reply/</a></font></p>
<p><font color="#00ff00">MSN留言风格的Ajax Commens-Reply插件<br />
(</font><font color="#00ff00">MSN Type Ajax Comments-Reply Plugin)<a href="http://blog.znsun.com/plugins-list/ajax-comments-reply/"></a> </font></p>
<ul>
<li><a href="http://znsun.com/Download/2007/20070318_ajax_comment_reply.rar">点击下载</a>，<font color="#ffcc00">版本：1.0β ，最近更新于2007/03/18</font></li>
</ul>
<p>原创于<a href="http://blog.nahoya.com/archives/2006_04/109" target="_blank">懶懶喵日記</a>，后<a href="http://zhiqiang.org/blog/" target="_blank">Zhang-Zi</a>根据此版本制作了非常优秀的<a href="http://zhiqiang.org/blog/plugin/ajaxcomment/" target="_blank">Ajax Comments-Reply</a>插件，现在这个版本实质是将Zhang-Zi的两个版本（一个是以前的实现msn风格的留言版本，另一个是他现在用的版本）合二为一。因此，这里特别感谢两位作者之前所作的大量努力。此版本主要实现的功能如下：</p>
<ul>
<li> 回复无需刷新。</li>
</ul>
<ul>
<li>可以直接在各种页面上（主页，多文章页面，单篇文章）回复留言（默认为5层嵌套），使得讨论更有针对性。</li>
</ul>
<p><font color="#ff9900"><strong>此修订版主要改了一下几个方面：</strong></font></p>
<ul>
<li>修改了原插件必须放置在wordpress根目录下的缺点，同时保留了prototype.lite等函数（因为我用的<a href="http://www.doknowevil.net/litebox/" target="_blank">litebox</a>中也用到了prototype.lite【注】litebox是<a href="http://www.huddletogether.com/projects/lightbox/" target="_blank">lightbox</a>的精简版本，用以实现图片显示的特殊效果）。</li>
<li>整合了Zhang-Zi的两个不同版本的插件，合并了部分代码，使之达到现在的显示效果。</li>
<li>修改了留言栏的式样，使得符合我的blog风格。</li>
<li>压缩了javascript代码，其中css文件没有压缩，如果有需要，可以参考我的文章：<a href="http://blog.znsun.com/2007/03/10/504" target="_blank">加速Wordpress</a></li>
</ul>
<p><font color="#ff9900"><strong>压缩包内容，包含在一个comment-reply的文件夹：</strong></font></p>
<ol>
<li>readme.html   //Read Me</li>
<li>ajax-comments.php  //实现在多文章页面上留言</li>
<li>comments.php       //实现单页面上的留言</li>
<li>comment.css        // css文件，控制评论栏效果</li>
<li>comment.js, parse.js.php     //已压缩的 javascript文件</li>
<li>moo.ajax.js, prototype.lite.js, moo.fx.js  //prototype.lite 模块</li>
<li>comments-ajax.php     //ajax留言处理</li>
<li>comment-reply.php      //插件控制</li>
<li>working.gif   //Loading留言时候的动态图标</li>
<li>unzip文件夹      //未压缩过的javascript版本</li>
</ol>
<p><font color="#ff6600"><strong>插件安装使用：</strong></font></p>
<ol>
<li>从上面链接下载安装文件，解压缩后得到一个comment-reply文件夹</li>
<li>把文件夹的comments.php放到模版目录下，覆盖同名文件—请备份旧的comments.php</li>
<li>将comment-reply文件夹整个放入插件目录。结构如下：<br />
---------------Plugins/<br />
----------------------/comment-reply/<br />
----------------------------comment-reply.php 等文件</li>
<li>到管理界面启用Ajax Comments-Reply修订版插件。</li>
<li>在index.php中用以下代码显示评论：
<p class="code">&lt;?php $pid=$post-&gt;ID; $cnum = get_comments_number(); showcomment($pid, $cnum);?&gt;</p>
</li>
</ol>
<p><font color="#ff6600"><strong>插件卸载：</strong></font></p>
<ol>
<li>将模版目录下备份的comments.php复原。</li>
<li>管理界面停用插件或者直接删除此插件文件。</li>
</ol>
<p><font color="#ff99cc">欢迎使用。有任何问题，可在此留言，或者email 到 "qmqsun(AT)<a href="http://gmail.com" title="http://gmail.com" target="_blank">gmail.com</a>"，当然，也可以去问Zhang-Zi，他的G-talk是"zhang(AT)<a href="http://zhiqiang.org" title="http://zhiqiang.org" target="_blank">zhiqiang.org</a>"。 <img src='http://blog.znsun.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </font></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsunimage.com/plugins-list/ajax-comments-reply/">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsunimage.com/plugins-list/ajax-comments-reply/#comments">One comment</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsunimage.com/plugins-list/ajax-comments-reply/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WP Static Homepage</title>
		<link>http://blog.znsunimage.com/plugins-list/wp-real-static-homepage/</link>
		<comments>http://blog.znsunimage.com/plugins-list/wp-real-static-homepage/#comments</comments>
		<pubDate>Fri, 16 Mar 2007 09:22:32 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[电脑技术]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2007/03/16/509</guid>
		<description><![CDATA[PLEASE Scroll down for Chinese version
This plugin enables the wp system to convert your dynamic homepage to static index.html, more importantly, keep the content up to date. It can speed up the loading for your homepage.

Download (Updated 2007.03.16)

Readme:

Plugin WP-Cron is needed for this plugin, I've packed WP-Cron v 1.4 in the zip file.
Please upzip all [...]]]></description>
			<content:encoded><![CDATA[<p><strong><font color="pink" size="+1">PLEASE Scroll down for Chinese version</font></strong></p>
<p><font color="pink" size="+1">This plugin </font>enables the wp system to convert your dynamic homepage to static index.html, more importantly, keep the content up to date. It can speed up the loading for your homepage.</p>
<ul>
<li><a href="http://znsun.com/Download/2007/20070316_wp_static_homepage.rar">Download</a> (Updated 2007.03.16)</li>
</ul>
<p><strong>Readme:</strong></p>
<ol>
<li>Plugin <a href="http://www.skippy.net/blog/category/wordpress/plugins/wp-cron/" target="_blank">WP-Cron</a> is needed for this plugin, I've packed WP-Cron v 1.4 in the zip file.<br />
Please upzip all the files to plugins/static-index, so that it look like:<br />
------plugins/<br />
------------static-index/<br />
----------------static.php<br />
----------------wp-cron-static-index.php<br />
----------------wp-cron.php</li>
<li>Active two plugins :WP-cron and WP-Cron Static Homepage.</li>
<li>Create a file named index.html in your blog root folder, set<br />
666 permissions for it.</li>
</ol>
<p>Well,  the system will update index.html automatically (per 15 mins), you may hack wp-cron.php at line 49 to change the time for scheduled exection actions.</p>
<p>More Tips:</p>
<ol>
<li>You may use the following php to refresh homepage when comments come in.
<p class="code">&lt;?php<br />
include (get_settings('siteurl') . "/wp-content/plugins/static-index/static.php");<br />
?&gt;</p>
</li>
<li>The following script is to demo how to  set cookies in the html files.
<p class="code">&lt;script type="text/javascript"&gt;<br />
function GetCookie(sName, id)<br />
{<br />
// cookies are separated by semicolons<br />
var something = document.getElementById(id);<br />
if(!something) return 0;<br />
for (var i=0; i &lt; aCookie.length; i++)<br />
{<br />
// a name alue pair (a crumb) is separated by an equal sign<br />
var aCrumb = aCookie[i].split("=");<br />
if (sName == aCrumb[0])<br />
{<br />
if(sName=="comment_author_10add94cfc29a64b08306c8a8f9edb30")<br />
something.value = decodeURI(aCrumb[1]);<br />
else<br />
something.value=unescape(aCrumb[1]);<br />
return 1;<br />
}<br />
}<br />
// a cookie with the requested name does not exist<br />
return 0;<br />
}<br />
//please fill in with your own cookie id<br />
GetCookie("comment_author_8e11b42cc2f3a74aac664cc9afa5baf7", "authorname");<br />
GetCookie("comment_author_email_8e11b42cc2f3a74aac664cc9afa5baf7", "email");<br />
GetCookie("comment_author_url_8e11b42cc2f3a74aac664cc9afa5baf7", "url");&lt;/script&gt;</p>
</li>
</ol>
<p><!--inline-more--></p>
<p><font color="pink" size="+1">WP Static Homepage</font>（首页静态化）插件的目的是为了将WP的index.php转化为index.html，从而实现首页静态化的目的，提高主页的浏览速度。  如果您想要全站静态化，请参考<a href="http://zhiqiang.org/blog/537.html" target="_blank">阅微堂</a>的文章。</p>
<ul>
<li><a href="http://znsun.com/Download/2007/20070316_wp_static_homepage.rar">插件下载地址</a>。 <font color="#cc99ff">（最后更新于2007.03.16）</font></li>
</ul>
<p>安装说明：</p>
<ol>
<li><font color="#ffcc99">您需要安装<a href="http://www.skippy.net/blog/category/wordpress/plugins/wp-cron/" target="_blank">WP-Cron</a>插件，在上述的下载地址中已经包含该插件的1.4版本，您也可以自行下载。</font></li>
<li><font color="#ffcc99">将下载文件中的所有文件解压缩后上传到plugins下的static-index目录中，目录结构如下：<br />
------plugins/<br />
----static-index/<br />
------------static.php<br />
------------wp-cron-static-index.php<br />
------------wp-cron.php</font></li>
<li><font color="#ffcc99">激活wp-cron，WP-Cron Static Homepage两个插件。</font></li>
<li><font color="#ffcc99">在blog根目录建立一个index.html的文件，设置属性为666。 </font></li>
</ol>
<p>运行之后，系统会每镉15分钟将index.php的内容刷新为index.html，提高浏览速度。  题外话：</p>
<ol>
<li>关于留言问题。 留言系统我采用的也是阅微堂的<a href="http://zhiqiang.org/blog/301.html">基于MSN风格的留言系统</a>，该系统基于ajax技术，因此可以在静态页面上使用。如果要使用该留言系统，建议在里面的comment-reply.php文件中包含以下语句，保证留言之后会重新刷新静态主页。
<p class="code">&lt;?php include (get_settings('siteurl') . "/wp-content/plugins/static-index/static.php"); ?&gt;</p>
</li>
<li>关于cookies读取，在<a href="http://zhiqiang.org/blog/537.html" target="_blank">阅微堂</a>的文章中已经有详细的阐述，这里借花献佛，也就是加入如下代码：
<p class="code">&lt;script type="text/javascript"&gt;<br />
function GetCookie(sName, id)<br />
{<br />
// cookies are separated by semicolons<br />
var something = document.getElementById(id);<br />
if(!something) return 0;<br />
for (var i=0; i &lt; aCookie.length; i++)<br />
{<br />
// a name alue pair (a crumb) is separated by an equal sign<br />
var aCrumb = aCookie[i].split("=");<br />
if (sName == aCrumb[0])<br />
{<br />
if(sName=="comment_author_10add94cfc29a64b08306c8a8f9edb30")<br />
something.value = decodeURI(aCrumb[1]);<br />
else<br />
something.value=unescape(aCrumb[1]);<br />
return 1;<br />
}<br />
}<br />
// a cookie with the requested name does not exist<br />
return 0;<br />
}<br />
以下为我的cookie设置，用户请自行寻找自己的cookie id<br />
GetCookie("comment_author_8e11b42cc2f3a74aac664cc9afa5baf7", "authorname");<br />
GetCookie("comment_author_email_8e11b42cc2f3a74aac664cc9afa5baf7", "email");<br />
GetCookie("comment_author_url_8e11b42cc2f3a74aac664cc9afa5baf7", "url");&lt;/script&gt;</p>
</li>
</ol>
<p>参考文献：</p>
<ol>
<li><a href="http://zhiqiang.org/blog/" target="_blank">阅微堂</a></li>
<li><a href="http://www.skippy.net/blog/category/wordpress/plugins/wp-cron/" target="_blank">WP-Cron</a></li>
</ol>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsunimage.com/plugins-list/wp-real-static-homepage/">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsunimage.com/plugins-list/wp-real-static-homepage/#comments">2 comments</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsunimage.com/plugins-list/wp-real-static-homepage/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>推荐一款在线播放器</title>
		<link>http://blog.znsun.com/2007/03/508/a-recommended-online-players</link>
		<comments>http://blog.znsun.com/2007/03/508/a-recommended-online-players#comments</comments>
		<pubDate>Wed, 14 Mar 2007 09:07:39 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[MP3]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[电脑技术]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2007/03/14/508</guid>
		<description><![CDATA[本文于2009年08月20日再次更新
Web2.0的时代，不少人喜欢在自己的blog或者网站上放音乐，不可否认，我也喜欢。
 但如何加载音乐的确是个问题，因为大多数在线播放器都会在加载该页面的同时读取相应的mp3文件，这样就降低了网页浏览速度。所以我碰到加载速度慢的mp3，一般都是直接block掉，免得影响自己的浏览速度。
这儿推荐一款flash在线播放器，flash在线播放器的最大的好处就是加载速度快，不会影响网页浏览的速度（至于音乐的加载速度，主要决定于你的带宽）。
 如果你是wordpress的用户，我推荐你安装XSPF_Player插件。
如果你的blog不是wordpress系统或者你想在自己的其他网页上添加播放器，请用如下的代码：
&#60;object type=&#34;application/x-shockwave-flash&#34; data=&#34;http://www.znsun.com/Music/player_mp3_maxi.swf&#34; width=&#34;200&#34; height=&#34;20&#34;&#62;
&#60;param name=&#34;wmode&#34; value=&#34;transparent&#34; /&#62;
&#60;param name=&#34;movie&#34; value=&#34;http://www.znsun.com/Music/player_mp3_maxi.swf&#34; /&#62;
&#60;param name=&#34;FlashVars&#34; value=&#34;mp3=歌曲地址栏&#38;amp;bgcolor1=ffffff&#38;amp;bgcolor2=cccccc&#38;amp;buttoncolor=999999&#38;amp;buttonovercolor=0&#38;amp;slidercolor1=cccccc&#38;amp;slidercolor2=999999&#38;amp;sliderovercolor=666666&#38;amp;textcolor=0&#38;amp;showvolume=1&#38;amp;autoplay=0&#38;amp;loop=0&#34; /&#62;
&#60;p&#62;Texte alternative&#60;/p&#62;
&#60;/object&#62;

注：
 上面包含了两段播放代码，针对不同的浏览器有效，满足不同人士需要啦。
 这个播放器本身是在我网站上的，你可以下载后再上传到自己的网站上。
 其中

歌曲地址栏请包含完整的歌曲 URL代码
&#38;autoplay=0 用来控制是否自动播放(1为自动播放)，如果不需要请删除此部分代码。
&#38;loop=0用来控制是否重复播放(1为重复播放)，如果不需要请删除此部分代码。

更多的参考请参阅：http://flash-mp3-player.net/ 
最后的实际效果见下，自动播放被我取消了，请自行点击开始欣赏。
Texte alternatif


	
	
	&#169; SUN for 徘徊在玻璃之城, 2007. &#124;
	  Permalink &#124;
	  与时俱进 &#124; 
	  No comment ]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff99cc;"><strong>本文于2009年08月20日再次更新</strong></span></p>
<p>Web2.0的时代，不少人喜欢在自己的blog或者网站上放音乐，不可否认，我也喜欢。<br />
 但如何加载音乐的确是个问题，因为大多数在线播放器都会在加载该页面的同时读取相应的mp3文件，这样就降低了网页浏览速度。所以我碰到加载速度慢的mp3，一般都是直接block掉，免得影响自己的浏览速度。</p>
<p>这儿推荐一款flash在线播放器，flash在线播放器的最大的好处就是加载速度快，不会影响网页浏览的速度（至于音乐的加载速度，主要决定于你的带宽）。<br />
 如果你是wordpress的用户，我推荐你安装<a href="http://www.boriel.com/?page_id=12" target="_blank">XSPF_Player插件</a>。</p>
<p>如果你的blog不是wordpress系统或者你想在自己的其他网页上添加播放器，请用如下的代码：</p>
<pre class="brush: php; light: false;">&lt;object type=&quot;application/x-shockwave-flash&quot; data=&quot;http://www.znsun.com/Music/player_mp3_maxi.swf&quot; width=&quot;200&quot; height=&quot;20&quot;&gt;
&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot; /&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.znsun.com/Music/player_mp3_maxi.swf&quot; /&gt;
&lt;param name=&quot;FlashVars&quot; value=&quot;mp3=歌曲地址栏&amp;amp;bgcolor1=ffffff&amp;amp;bgcolor2=cccccc&amp;amp;buttoncolor=999999&amp;amp;buttonovercolor=0&amp;amp;slidercolor1=cccccc&amp;amp;slidercolor2=999999&amp;amp;sliderovercolor=666666&amp;amp;textcolor=0&amp;amp;showvolume=1&amp;amp;autoplay=0&amp;amp;loop=0&quot; /&gt;
&lt;p&gt;Texte alternative&lt;/p&gt;
&lt;/object&gt;
</pre>
<p>注：<br />
 上面包含了两段播放代码，针对不同的浏览器有效，满足不同人士需要啦。<br />
 <span style="color: pink;">这个播放器本身是在我网站上的，你可以<a href="http://znsun.com/Download/2007/20070314_player_mp3_maxi.rar">下载</a>后再上传到自己的网站上。</span><br />
 其中</p>
<ol>
<li>歌曲地址栏请包含完整的歌曲 URL代码</li>
<li>&amp;autoplay=0 用来控制是否自动播放(1为自动播放)，如果不需要请删除此部分代码。</li>
<li>&amp;loop=0用来控制是否重复播放(1为重复播放)，如果不需要请删除此部分代码。</li>
</ol>
<p>更多的参考请参阅：<a href="http://flash-mp3-player.net/">http://flash-mp3-player.net/ </a></p>
<p>最后的实际效果见下，自动播放被我取消了，请自行点击开始欣赏。</p>
<p><object type="application/x-shockwave-flash" data="http://www.znsun.com/Music/player_mp3_maxi.swf" width="200" height="20"><param name="wmode" value="transparent" /><param name="movie" value="player_mp3_maxi.swf" /><param name="FlashVars" value="mp3=http://znsun.com/Music/2005/trytoremember.mp3&amp;bgcolor1=ffffff&amp;bgcolor2=cccccc&amp;buttoncolor=999999&amp;buttonovercolor=0&amp;slidercolor1=cccccc&amp;slidercolor2=999999&amp;sliderovercolor=666666&amp;textcolor=0&amp;showvolume=1&amp;autoplay=0&amp;loop=0" /><p>Texte alternatif</p>
</p>
<p></object></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsun.com/2007/03/508/a-recommended-online-players">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsun.com/2007/03/508/a-recommended-online-players#comments">No comment</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2007/03/508/a-recommended-online-players/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google AJAX Search 使用简介</title>
		<link>http://blog.znsun.com/2007/03/505/google-ajax-search-use</link>
		<comments>http://blog.znsun.com/2007/03/505/google-ajax-search-use#comments</comments>
		<pubDate>Mon, 12 Mar 2007 16:23:14 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[电脑技术]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2007/03/13/505</guid>
		<description><![CDATA[无意中发现了Google提供了AJAX Search功能，可以适用于各大Blog（包括wordpress，blogspot，自制网页,等等），随即用Google大神搜索了一下。结果我发现网上有不少相关的文章，但是适合我的一个都没有，于是我自己动手把这个功能加到blog中，具体效果请试用左侧的搜索栏。本着共享的原则，将方法写在这儿，给大家一个  参考。
Google AJAX  Search的功能非常强大，可以搜索网页、地图、新闻、书籍等等。但是我觉得对一个blog搜索来说，只要有本站搜索和网页搜索两项就足够了；另外，现在的blog多会采用两栏或者三栏的布局方式，因此，我也选择了将搜索栏和搜索结果分开显示的方法，合理的利用空间，如果你希望添加更多的内容，请参见Google AJAX Search documentation。
首先你要做的是去Google的网站申请一个Google AJAX Search API，点击左下角的确认框，并且输入你的blog地址后，你会得到一个长长的Key。

随后，在需要添加AJAX搜索功能的网页之header部分（在&#60;head&#62;和&#60;/head&#62;之间），嵌入如下的代码（如果你使用的是wordpress，请在header.php中的&#60;/head&#62;之前添加）：

&#60;script src=&#34;http://www.google.com/uds/api?file=uds.js&#38;v=1.0&#38;key=请在此处填写你的key&#34; type=&#34;text/javascript&#34;&#62;&#60;/script&#62;
&#60;script language=&#34;Javascript&#34; type=&#34;text/javascript&#34;&#62;//&#60;![CDATA[
function OnLoad() {
// create a search control
var searchControl = new GSearchControl();
searchControl.setLinkTarget(GSearch.LINK_TARGET_SELF); //可选项，如果删除此行，搜索结果将在新页中打开
searchControl.setResultSetSize(GSearch.LARGE_RESULTSET); //可选项，如果删除此行，搜索结果将从10条变为4条
// create a draw options object so that we
// can position the search form root
var options = new GdrawOptions();
options.setSearchFormRoot(document.getElementById(&#34;searchForm&#34;));
options.setDrawMode(GSearchControl.DRAW_MODE_TABBED);

var siteSearch = new GwebSearch();
siteSearch.setUserDefinedLabel(&#34;填入你的网站标签&#34;);
siteSearch.setUserDefinedClassSuffix(&#34;siteSearch&#34;);
siteSearch.setSiteRestriction(&#34;填入你的blog网址&#34;);
searchControl.addSearcher(siteSearch);

// standard, unrestricted web search
searchControl.addSearcher(new [...]]]></description>
			<content:encoded><![CDATA[<p>无意中发现了<a href="http://www.google.com" target="_blank">Google</a>提供了<a href="http://code.google.com/apis/ajaxsearch/" target="_blank">AJAX Search</a>功能，可以适用于各大Blog（包括wordpress，blogspot，自制网页,等等），随即用Google大神搜索了一下。结果我发现网上有不少相关的文章，但是适合我的一个都没有，于是我自己动手把这个功能加到blog中，具体效果请试用左侧的搜索栏。本着共享的原则，将方法写在这儿，给大家一个  参考。</p>
<p>Google AJAX  Search的功能非常强大，可以搜索网页、地图、新闻、书籍等等。但是我觉得对一个blog搜索来说，只要有本站搜索和网页搜索两项就足够了；另外，现在的blog多会采用两栏或者三栏的布局方式，因此，我也选择了将搜索栏和搜索结果分开显示的方法，合理的利用空间，如果你希望添加更多的内容，请参见<a href="http://code.google.com/apis/ajaxsearch/documentation/">Google AJAX Search documentation</a>。</p>
<p>首先你要做的是去Google的网站申请一个<a href="http://code.google.com/apis/ajaxsearch/signup.html">Google AJAX Search API</a>，点击左下角的确认框，并且输入你的blog地址后，你会得到一个长长的Key。</p>
<p><!--inline-more--></p>
<p>随后，在需要添加AJAX搜索功能的网页之header部分（在&lt;head&gt;和&lt;/head&gt;之间），嵌入如下的代码（如果你使用的是wordpress，请在header.php中的&lt;/head&gt;之前添加）：</p>
<pre class="brush: jscript; light: false;">
&lt;script src=&quot;http://www.google.com/uds/api?file=uds.js&amp;v=1.0&amp;key=请在此处填写你的key&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script language=&quot;Javascript&quot; type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function OnLoad() {
// create a search control
var searchControl = new GSearchControl();
searchControl.setLinkTarget(GSearch.LINK_TARGET_SELF); //可选项，如果删除此行，搜索结果将在新页中打开
searchControl.setResultSetSize(GSearch.LARGE_RESULTSET); //可选项，如果删除此行，搜索结果将从10条变为4条
// create a draw options object so that we
// can position the search form root
var options = new GdrawOptions();
options.setSearchFormRoot(document.getElementById(&quot;searchForm&quot;));
options.setDrawMode(GSearchControl.DRAW_MODE_TABBED);

var siteSearch = new GwebSearch();
siteSearch.setUserDefinedLabel(&quot;填入你的网站标签&quot;);
siteSearch.setUserDefinedClassSuffix(&quot;siteSearch&quot;);
siteSearch.setSiteRestriction(&quot;填入你的blog网址&quot;);
searchControl.addSearcher(siteSearch);

// standard, unrestricted web search
searchControl.addSearcher(new GwebSearch());

searchControl.draw(document.getElementById(&quot;searchResults&quot;), options);
}
GSearch.setOnLoadCallback(OnLoad);
//]]&gt;
&lt;/script&gt;
</pre>
<p>几个地方需要修改的我已经在代码中列明。</p>
<p>然后在你需要放置搜索结果的地方（一般放置在代码&lt;body&gt;之后，显示blog内容的部分）嵌入如下代码，（如果你使用wordpress，请在header.php中的代码&lt;div id="content"&gt;之后添加）：</p>
<p class="code">&lt;div id="searchResults"/&gt;&lt;/div&gt;</p>
<p>现在，你需要添加的是搜索条部分，一般说来，我们会选择在侧栏添加如下代码（如果你使用wordpress，请在siderbar.php中添加）：</p>
<p class="code">&lt;div id="searchform"&gt;&lt;/div&gt;</p>
<p>好，现在你要做的是最后一件事情，将如下的代码嵌入到你的css文件中（wp用户的css文件为相应theme下的style.css），如果你的  网站没有css文件，那么请在&lt;head&gt;和&lt;/head&gt;添加如下代码，注意，你可能要根据自己网站的实际情况修改下列代码：</p>
<pre class="brush: css; light: false;">
/** Copyright 2005 Google Inc. All rights reserved. */
/* the GSearchControl CSS Classes
* .gsc-control :主显示框
*/
.gsc-control {
width: 98%;
}

.gsc-control div {
position: static;
}

/* control inputs
* .gsc-search-box : 搜索栏大小
* .gsc-input : the text input area
* .gsc-keeper : the save link below savable results
*/
form.gsc-search-box {
width: 96%;
}

/*
* This table contains the input element as well as the search button
* Note that the search button column is fixed width, designed to hold the
* button div's background image
*/
table.gsc-search-box {
width : 100%;
margin-bottom : 2px;
margin-top : 5px;
margin-left: -6px;
}

td.gsc-search-button {
width : 1%;
}

td.gsc-clear-button {
width : 14px;
}

/**
* undo common generic table rules
* that tend to impact branding
*/
table.gsc-branding td,
table.gsc-branding {
margin: 0 0 0 0;
padding: 0 0 0 0;
border : none;
}

table.gsc-branding {
border-style : none;
border-width : 0px;
border-spacing : 0px 0px;
width : 100%;
}

td.gsc-branding-text {
vertical-align : top;
}

td.gsc-branding-text div.gsc-branding-text {
padding-bottom : 2px;
text-align : right;
color : #676767;
font-size : 11px;
margin-right : 2px;
}

td.gsc-branding-img-noclear {
width : 51px;
vertical-align : bottom;
}

td.gsc-branding-img {
width : 60px;
vertical-align : bottom;
}

input.gsc-search-button {
margin-left : 4px;
}

div.gsc-clear-button {
display : inline;
text-align : right;
margin-left : 4px;
margin-right : 4px;
padding-left : 10px;
background-repeat: no-repeat;
background-position: center center;
background-image: url('http://www.google.com/uds/css/clear.gif');
cursor : pointer;
}

/*
* Given that this is sitting in a variable width tabel cell, the idea is
* for it to consume the entire cell. The adjacent cell contains the search
* button and that is a fixed width cell.
*/
input.gsc-input {
padding-left : 2px;
border-style : solid;
border-width : 1px;
border-color : #BCCDF0;
width : 99%;
}

/* tabbed mode of search control
* .gsc-tabsArea : the box containing all of the tabs
* .gsc-tabsAreaInvisible : same as above, but this is the state when search has been cleared
* .gsc-tabHeader : an individual tab
* .gsc-tabHeader.gsc-tabhActive : the active tab
* .gsc-tabHeader.gsc-tabhInactive : an inactive tab
* .gsc-tabData : the data area/box containg results and header data for each tab
* .gsc-tabData.gsc-tabdActive : the data area for the active tab
* .gsc-tabData.gsc-tabdInactive : the data area for inactive tabs
*/
.gsc-tabsArea {
clear: both;
margin-top: 6px;
}

.gsc-tabsAreaInvisible {
display : none;
}

.gsc-tabHeader {
display: inline;
cursor: pointer;
display: inline;
padding: 2px 10px !important;
border: 1px solid #999; /*可修改搜索结果标题栏的边框颜色*/
border-bottom: none;
margin-bottom: 0;
margin-right: -6px; /*不要修改*/
margin-left: 10px; /*不要修改*/
}

.gsc-tabHeader.gsc-tabhActive {
background: #484848; /*正在显示的搜索结果标题栏的背景*/
color: #FFFF99; /*正在显示的搜索结果标题栏的字体颜色*/

}

.gsc-tabHeader.gsc-tabhInactive {

}

.gsc-tabData.gsc-tabdActive {
display: block;
border: 1px solid #999; /*搜索结果显示栏的边框颜色*/
padding:10px;
background: #484848; /*搜索结果显示栏的背景颜色*/
margin-bottom:10px; /*搜索结果显示栏内文字字体*/
font-size:14px;
}

/*此代码只对IE6适用*/
* html .gsc-tabData.gsc-tabdActive {
display: block;
border: 1px solid #999; /*搜索结果显示栏的边框颜色*/
padding:10px;
background: #484848; /*搜索结果显示栏的背景颜色*/
margin-bottom:10px; /*搜索结果显示栏内文字字体*/
font-size:14px;
margin-top:1px; /*不要更改，保证tab显示效果和firefox一致*/
}

/*此代码只对IE7适用*/
*+ html .gsc-tabData.gsc-tabdActive {
display: block;
border: 1px solid #999; /*搜索结果显示栏的边框颜色*/
padding:10px;
background: #484848; /*搜索结果显示栏的背景颜色*/
margin-bottom:10px; /*搜索结果显示栏内文字字体*/
font-size:14px;
margin-top:1px; /*不要更改，保证tab显示效果和firefox一致*/
}

.gsc-tabData.gsc-tabdInactive {
display: none;
}

/* tab specific results header supression
* - no twiddle, tabbed mode runs in full expand mode
* - no title
* - no stats
*/
.gsc-tabData .gsc-resultsHeader .gsc-title {
display: none;
}

.gsc-tabData .gsc-resultsHeader .gsc-stats {
display: none;
}

.gsc-tabData .gsc-resultsHeader .gsc-results-selector {
display : none;
}

/* the results for each section
* .gsc-resultsbox-{visible,invisible} : a complete-collection of results including headers
* .gsc-results : the collection of results for a given searcher
* .gsc-result : a generic result within the control. each result has this class, as well as .gsc-xxxResult where xxx is web, image, local, blog, etc.
*/

.gsc-resultsbox-visible {
display : block;
}

.gsc-resultsbox-invisible {
display : none;
}

.gsc-results {
clear: both;
padding-bottom: 2px;
}

.gsc-result {
margin-bottom: 10px;
}

.gsc-result .gs-title {
height: 1.4em;
overflow: hidden;
}

/* specialized, result type specific, fine grained controls */
.gsc-result div.gs-watermark {
display: none;
}

/* Ads
*/
.gsc-results .gsc-result img.gs-ad-marker {
display: none;
}

/*** End of Control, Begin Results ***/

/* generic, cross cutting result style
* - in the form of .gs-result .gs-xxx where xxx is the generic style
* .gs-title : typically the first line of a result, typically a link, image results over ride this, since for image results, the image is the link
* .gs-divider : typically seperates results from ads
* .gs-visibleUrl : typically the last line of a result, displayed in green. sometimes a link (like in blog search)
* .gs-clusterUrl : for news, and other similar services, this is a cluster of additional results
* img.gs-image : an actial image in a result
* .gs-phone : a phone number
* .gs-address : an address (includes street, city, region, country)
* .gs-streetAddress : a street (including #)
* .gs-city : a city
* .gs-region : a region (zip code, area, etc.)
* .gs-country : a country
* .gs-snippet : snippetized content
* .gs-watermark : indicator that user selected this result
* .gs-metadata : generic metadata, e.g.,
* .gs-image-box : generic container for a result's image (within a table)
* .gs-text-box : generic container for a result's text content (within a table). Note that this class, and image-box are only used in video
*/
.gs-result .gs-title,
.gs-result .gs-title * {
color: #6FF; /*搜索结果内容标题栏颜色 */
text-decoration: underline;
padding-bottom:5px;
}

.gs-divider {
padding-bottom: 8px;
text-align: center;
color: #676767;
}

.gs-result a.gs-visibleUrl,
.gs-result .gs-visibleUrl {
color: #FAC; /*搜索结果来源网站的颜色 */
text-decoration: none;
}

.gs-webResult div.gs-visibleUrl-long {
width : 100%;
overflow : hidden;
display : none;
}
</pre>
<p>可能需要修改的地方，我已经用汉字注解标注。</p>
<p>好了，在完成上述工作以后，将你所修改好的文件上传，就大功告成了。现在，别人如果要搜索你的网页，可以非常快速的用Google在你的网页上立即完成，一个字－酷！</p>
<p><span class="technoratitag">Technorati Tags: <a rel="tag" href="http://www.technorati.com/tags/Google">Google</a>, <a rel="tag" href="http://www.technorati.com/tags/AJAX">AJAX</a>, <a rel="tag" href="http://www.technorati.com/tags/Search">Search</a>, <a rel="tag" href="http://www.technorati.com/tags/%E6%90%9C%E7%B4%A2">搜索</a>, <a rel="tag" href="http://www.technorati.com/tags/%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C">使用手册</a></span></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsun.com/2007/03/505/google-ajax-search-use">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsun.com/2007/03/505/google-ajax-search-use#comments">One comment</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2007/03/505/google-ajax-search-use/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>优化Wordpress-wp终极优化手册</title>
		<link>http://blog.znsun.com/2007/03/504/optimization-wordpress-wp-ultimate-manual-optimization</link>
		<comments>http://blog.znsun.com/2007/03/504/optimization-wordpress-wp-ultimate-manual-optimization#comments</comments>
		<pubDate>Sat, 10 Mar 2007 14:35:14 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2007/03/10/504</guid>
		<description><![CDATA[本文已于2009年08月21日再次更新
更新：关于wp-cache的优化，请参见本站新作：
  优化WP-Cache：Wordprss优化手册(2)
Wordpress的功能非常强大，诸多的插件、花哨的界面，使得它的读取速度也大大降低。因此，如何优化以加快访问者的浏览速度便成了wper们思考的问题。我将诸多高手的方法进行了整理和总结，再结合自己优化的经验汇成此文，希望能对大家有所帮助。
To be, or not to be: that is the question：
 这是我想讨论的第一个问题----就是有没有必要做优化。在我看来，绝大多数个人博客是不需要做优化的。花很多时间对一个日访问量不到100的博客做优化还不如花这点时间来好好充实自己的博客内容。
 在准备自己的个人博客时最应该考虑的有2个问题。

首先是选一个合适的Linux主机。


其次尽可能使用最新版本的WordPress，新版本在后台有很大的改进，方便你自己使用、更新。

当你博客的访问量稳步上升后，优化才是你应该考虑的问题。

优化所有的图片（images）：
 图片其实是影响网页读取速度的关键，稍大一些的图片就可能达到100K；因此，在上传自己的图片之前，务必用Photoshop的"保存至网页"（save for web）功能，对图片进行优化。（例如，保存成GIF, PNG格式等等）


关闭一切不必要的插件(plugins)： 
 在安装插件之前，首先问一下自己，你是否必须要此插件。尽可能的减少插件数量。

 

开启缓存(Cache)功能：
 
 

首先你可以开启WordPress自带的缓存功能：
 打开WP根目录下的wp-config.php文件，在最后一行之前添加   define('ENABLE_CACHE',true);
 将WP-content目录下的cache目录属性改为777，以保证系统能够写入cache。 

 

如果您的blog日访问量在200以上，建议安装WP-Cache或者WP Super Cache插件，否则不推荐使用。我自己使用的是WP-Cache。

 

让WP-Cache也用上Gzip：
 如果你安装了WP-Cache，一定知道WP-Cache要求必须关闭WP的内置GZip功能，但是我们可以在wp-cache-phase1.php中添加代码来实现Gzip压缩功能。  打开wp-cache-phase1.php，大概在35行左右找到如下代码：
foreach ($meta-&#62;headers as $header) {
header($header);
在此代码前添加下面的代码：
if ( extension_loaded('zlib') ) ob_start('ob_gzhandler');


 


减少HTTP请求---合并JS和CSS文件:
 不少插件都有自己的JS文件，系统在读取这些文件时候会产生大量的http requests，产生的延迟约为0.2秒/个。因此将所有的JS和CSS文件合并，会减少很多HTTP请求，大大加快页面的读取速度。
 但是我不建议大家自己手动合并代码，这里我采用的是阅微堂的合并的方法 。
  具体是建立一个新的all.js.php文件，内容是：
&#60;?php
require_once('目录/wp-blog-header.php' ) ;
include (&#34;/blog/a.js&#34; ) [...]]]></description>
			<content:encoded><![CDATA[<p><strong>本文已于2009年08月21日再次更新</strong></p>
<p><span style="color: #00ff00;">更新：关于wp-cache的优化，请参见本站新作：<br />
 </span> <a href="http://blog.znsun.com/2007/04/547" target="_blank">优化WP-Cache：Wordprss优化手册(2)</a></p>
<p>Wordpress的功能非常强大，诸多的插件、花哨的界面，使得它的读取速度也大大降低。因此，如何优化以加快访问者的浏览速度便成了wper们思考的问题。我将诸多高手的方法进行了整理和总结，再结合自己优化的经验汇成此文，希望能对大家有所帮助。</p>
<p>To be, or not to be: that is the question：<br />
 这是我想讨论的第一个问题----就是有没有必要做优化。在我看来，绝大多数个人博客是不需要做优化的。花很多时间对一个日访问量不到100的博客做优化还不如花这点时间来好好充实自己的博客内容。<br />
 在准备自己的个人博客时最应该考虑的有2个问题。</p>
<ul>
<li>首先是选一个合适的Linux主机。</li>
</ul>
<ul>
<li>其次尽可能使用最新版本的WordPress，新版本在后台有很大的改进，方便你自己使用、更新。</li>
</ul>
<p><span style="color: #00ff00;">当你博客的访问量稳步上升后，优化才是你应该考虑的问题。</span></p>
<ol>
<li><span style="color: pink;"><strong>优化所有的图片（images）：</strong></span><br />
 图片其实是影响网页读取速度的关键，稍大一些的图片就可能达到100K；因此，在上传自己的图片之前，务必用Photoshop的"保存至网页"（save for web）功能，对图片进行优化。（例如，保存成GIF, PNG格式等等）</p>
<p><br class="spacer_" /></p>
</li>
<li><span style="color: pink;"><strong>关闭一切不必要的插件(plugins)：</strong></span> <br />
 在安装插件之前，首先问一下自己，你是否必须要此插件。<strong>尽可能的减少插件数量。</strong></p>
<p><br class="spacer_" /></p>
<p><strong> </strong></p>
</li>
<li><span style="color: pink;"><strong>开启缓存(Cache)功能：</strong></span>
<ol> </ol>
<ol> </ol>
<ul>
<li>首先你可以开启WordPress自带的缓存功能：<br />
 打开WP根目录下的wp-config.php文件，在最后一行之前添加   define('ENABLE_CACHE',true);<br />
 将WP-content目录下的cache目录属性改为777，以保证系统能够写入cache。 </li>
</ul>
<ol> </ol>
<ul>
<li>如果您的blog日访问量在200以上，建议安装<a title="WP-Cache" href="http://wordpress.org/extend/plugins/wp-cache/" target="_blank">WP-Cache</a>或者<a title="WP-Super Cache" href="http://wordpress.org/extend/plugins/wp-super-cache/" target="_blank">WP Super Cache</a>插件，否则不推荐使用。我自己使用的是WP-Cache。</li>
</ul>
<ol> </ol>
<ul>
<li><strong><span style="color: #ff99cc;">让WP-Cache也用上Gzip：</span></strong><br />
 如果你安装了WP-Cache，一定知道WP-Cache要求必须关闭WP的内置GZip功能，但是我们可以在wp-cache-phase1.php中添加代码来实现Gzip压缩功能。  打开wp-cache-phase1.php，大概在35行左右找到如下代码：</p>
<pre class="brush: php; light: true;">foreach ($meta-&gt;headers as $header) {
header($header);</pre>
<p>在此代码前添加下面的代码：</p>
<pre class="brush: php; light: true;">if ( extension_loaded('zlib') ) ob_start('ob_gzhandler');</pre>
</li>
</ul>
<ol> </ol>
</li>
<li>
<p><strong><span style="color: pink;">减少HTTP请求---合并JS和CSS文件:</span></strong><br />
 不少插件都有自己的JS文件，系统在读取这些文件时候会产生大量的http requests，产生的延迟约为0.2秒/个。因此将所有的JS和CSS文件合并，会减少很多HTTP请求，大大加快页面的读取速度。<br />
 但是我不建议大家自己手动合并代码，这里我采用的是<a href="http://yueweitang.org/blog/posts/wordpress-accelerate-the-pace-of-pages-printed-in-the-generation-and.html" target="_blank">阅微堂的合并的方法</a> 。<br />
 <em> </em>具体是建立一个新的all.js.php文件，内容是：</p>
<pre class="brush: php;">&lt;?php
require_once('目录/wp-blog-header.php' ) ;
include (&quot;/blog/a.js&quot; ) ;
include (&quot;/b.js&quot; ) ;
?&gt;
</pre>
<p><em> </em>其实就是将header.php里面的那些js文件都include到all.js.php，然后在header里面包含all.js.php文件即可：</p>
<pre class="brush: jscript; light: true;">&lt;script xsrc=&quot;all.js.php&quot; type=&quot;text/javascript&quot;/&gt;</pre>
<p>另外还要做的一件事情是需要把原来那些js文件从head里面去掉。通常这些js文件都是通过<em> </em></p>
<pre class="brush: php; light: true;">add_action('wp_head','fun' );</pre>
<p>这样的钩子添加到head里面的。在function函数的定义处去掉对应的代码，或者直接把这条语句删除即可。  <br />
 对CSS文件也可以用同样的处理方式。CSS文件一般都不多，这时候可以直接手动把它们都贴到一起。  另外js文件的载入位置也很重要，放在越后面越好，让浏览器先下载html代码。像Google Analytics的js代码最好放在文件最后。</p>
</li>
<li><strong><span style="color: pink;">合理放置css文件和js文件：</span></strong><br />
 一般来说，css文件放在页面头部，而JavaScript脚本则最好放在页面尾部，让浏览器先下载html代码。像Google Analytics 或者Google Ajax Search 这样的大型js代码最好放在文件最后。</li>
<li><strong><span style="color: pink;">压缩代码：</span></strong>
<ol>
<li><span style="text-decoration: line-through;">在管理界面的 Options-&gt;Reading选项中，开启WP自带的压缩功能(WordPress should compress articles (gzip) if browsers ask for them)</span></li>
<li>利用<a href="http://css.znsun.com" target="_blank">CSS 优化工具</a>压缩CSS代码，注意。为了方便自己编辑，最好保留一份未经过压缩的代码。</li>
<li>利用<a href="http://shrinksafe.dojotoolkit.org/" target="_blank">Shrinksafe</a> 压缩JS代码，同样的，最好保留未经过压缩的JS代码，以便将来更改时候便于阅读。</li>
</ol>
</li>
<li><strong><span style="color: pink;">静态化处理：</span></strong><br />
 为了免得生成太多的文件，我只对首页做初始化。其实这个想法和用WP-Cache差不多，所不同的是 WP-Cache生成缓存页面是靠浏览完成，而我说的方法却是由服务器来完成。我的网页中，Comments都是用javascript实时显示的，所以我要做的只是在更新或添加post后刷新一次主页。所用的程序如下：
<pre class="brush: php;">
&lt;?php
function wwwcopy($link,$file)
{
$fp = @fopen($link,&quot;r&quot;);
while(!feof($fp))
{
$cont.= fread($fp,1024);
}
fclose($fp);
$fp2 = @fopen($file,&quot;w&quot;);
fwrite($fp2,$cont);
fclose($fp2);
}
//Example on using this function
wwwcopy(&quot;您的动态网页（如http://blog.znsun.com/index.php）&quot;, &quot;放置静态网页的绝对地址（如/home/znsunima/public_html/wordpress/index.html）&quot;);
?&gt;
</pre>
<p>记住要把index.html的属性设置成666，这样结果就是别人访问你的网站时候，会直接先读取静态的首页，大大加快了速度。</p>
<p>当然，如果你需要更多静态化页面的帮助，也可以考虑安装 <a href="http://www.storyday.com/html/y2007/1213_cos-html-cache-wordpress-static-release-of-plug-in.html">cos-html-cache</a> 这个插件。</p>
</li>
<li>
<p><span style="color: pink;"><strong>利用Gzip对css、js还有html文件进行压缩：</strong></span><br />
 这步其实是第六步的延续，因为gzip的压缩比很好，以至于我们可以不用预先压缩css和js代码就可以达到很好的压缩比。<br />
 首先建立一个文件style.css.php，放在自己的theme目录里面。然后在header.php文件中把读取style.css改为读取style.css.php。  随后在style.css.php文件添加如下代码：</p>
<pre class="brush: php;">
&lt;?php
if(extension_loaded('zlib')){ob_start('ob_gzhandler');}
header(&quot;Content-type: text/css&quot;);
# echo the file’s contents
include($_SERVER['DOCUMENT_ROOT'].&quot;/wp-content/themes/default/style.css&quot;);//请自行更改css文件位置
if(extension_loaded('zlib')){ob_end_flush();}
?&gt;
</pre>
<p>js文件的压缩方法相同，把all.js改名all.js.php，然后将上面要添加的代码中的<span style="color: #00ff00;">text/css改成text/javascript</span>即可。</p>
<p>而html文件，可以用rewrite的方法，比方说我的index.html事实上是利用php读取的index2.html规则，请在.htaccess文件中添加如下代码：</p>
<pre class="brush: xml; light: true;">RewriteRule index.html /readhtml.php [L]</pre>
<p>readhtml.php文件的内容和之前读取css文件的类似：</p>
<pre class="brush: php;">
&lt;?php
if(extension_loaded('zlib')){ob_start('ob_gzhandler');}
header(&quot;Content-type: text/plain&quot;);
# echo the file’s contents
include($_SERVER['DOCUMENT_ROOT'].&quot;/index2.html&quot;);//请自行更改html文件位置
if(extension_loaded('zlib')){ob_end_flush();}
?&gt;
</pre>
</li>
<li>
<p><strong><span style="color: pink;">利用Image  Map减少meta部分的image读取量：</span></strong><br />
 <strong>本部分比较复杂，如不懂可跳过。</strong><br />
 在阅读这部分内容之前，你可以点一下<a href="http://blog.znsun.com/wp-content/themes/znsun/images/bg.gif" target="_blank">这个链接</a>。<a rel="lightbox[roadtrip]" href="http://blog.znsun.com/wp-content/uploads/2007/03/20070310.gif"><img style="margin-left:10px" title="Image" src="http://blog.znsun.com/wp-content/uploads/2007/03/_20070310.gif" alt="Image" width="187" height="250" align="right" /></a><br />
 你所看到的就是我这个博客使用的背景图。其实现原理就是把一些常用的image用一个大的image来代替，并且在css文件中设置为背景。然后利用div的控制实现鼠标的悬停指向。</p>
<p>这里以我siderbar下方的meta图标为例。<br />
 我使用的Two  Columns的模版，因此，除了index.php文件外，还会有一个siderbar.php文件，meta信息都会放在这个文件中。一般我们在  meta部分会添加不少图标，所以我们可以将不同的图标放到一个大的gif文件中，然后利用Slice  Tools对图片进行分割。</p>
<p>分割完成可在每个Slice上右击鼠标，读取Slice的属性，记下 下图中的X,Y,W,H坐标值。<br />
 如图所示的就是图标Creative Commons的坐标(可点击看大图)。</p>
<p>接着在CSS文件中建立一个class</p>
<pre class="brush: css;">
.creativec	{
float:left;
margin-top:2px; //可自己更改
margin-left:0px; //可自己更改
background: url(images/bg.gif) no-repeat -41px -82px; //前者为X坐标，后者为Y坐标
width: 110px;
height: 29px;
}
</pre>
<p>有人还会在上面这段css定义中添加一句：</p>
<pre class="brush: css; light: true;">text-indent: -9900px;</pre>
<p>主要用来将文字隐藏，但我不建议这样做，这样的话，在firefox中点击会出现长长的虚框，影响美观。<br />
 我的做法是此链接的title文字部分，用“&amp;nbsp;”。回到我的例子，我们就可以在sidebar.php添加如下的信息。注意我在写它的title时候用的是空格符号&amp;nbsp;。</p>
<pre class="brush: xml; light: true;">&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot; title=&quot;Some Rights Reserved&quot; class=&quot;creativec&quot; target=&quot;_blank&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;
</pre>
<p>把所有你会用到image都用这种方式修改。上传更改过的所有文件，重新读取，你会发现你网站loading的速度会快很多。你可以按照每个image所产生的http requests约为0.2s来计算。</p>
<p>阅微堂还给出了一个<a href="http://yueweitang.org/blog/posts/the-whole-point-of-static-wordpress.html" target="_blank">全站静态化</a>的绝好方法，值得借鉴，尤其是java读取cookie的方法，相信对不少人都会有用。</p>
<p>还有一些方法或需要服务器根目录的读写权限，或者需要数据库的root权限，不具有普遍性，就不列出了。</p>
<p><strong> 参考资料：</strong></p>
<p>1. <a href="http://yueweitang.org/blog/posts/wordpress-accelerate-the-pace-of-pages-printed-in-the-generation-and.html" target="_blank">阅微堂：加快WordPress的页面生成和载入速度 </a><br />
 2. <a href="http://www.arnebrachhold.de/2007/02/16/four-plus-one-ways-to-speed-up-the-performance-of-wordpress-with-caching" target="_blank">4+1 Ways to Speed Up Wordpress With Caching</a><br />
 3. <a href="http://paulstamatiou.com/2006/06/22/5-ways-to-speed-up-your-site/" target="_blank">5 Ways to Speed Up Your Site</a></p>
</li>
</ol>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsun.com/2007/03/504/optimization-wordpress-wp-ultimate-manual-optimization">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsun.com/2007/03/504/optimization-wordpress-wp-ultimate-manual-optimization#comments">47 comments</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2007/03/504/optimization-wordpress-wp-ultimate-manual-optimization/feed</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>WP-Cache Plugin Bugfix for blank page</title>
		<link>http://blog.znsun.com/2007/02/495/wp-cache-plugin-bugfix-for-blank-page</link>
		<comments>http://blog.znsun.com/2007/02/495/wp-cache-plugin-bugfix-for-blank-page#comments</comments>
		<pubDate>Wed, 28 Feb 2007 12:53:02 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2007/02/28/495</guid>
		<description><![CDATA[Must say, WP-cache is very powerful tool~, if you didn't install it, just try~
I found this bug when I installed WP-Cache yesterday. it took me half an hour to find the problem, so I'm going to write down this entry to help you out.
Encoding Issue
After installing and enabling WP-Cache, you can only see a blank [...]]]></description>
			<content:encoded><![CDATA[<p>Must say, <a href="http://mnm.uib.es/gallir/wp-cache-2/" target="_blank">WP-cache</a> is very powerful tool~, if you didn't install it, just try~<br />
I found this bug when I installed <a href="http://mnm.uib.es/gallir/wp-cache-2">WP-Cache</a> yesterday. it took me half an hour to find the problem, so I'm going to write down this entry to help you out.</p>
<p><font color="red"><strong>Encoding Issue</strong></font><br />
After installing and enabling WP-Cache, you can only see a blank page with IE but all your pages can be seen with firefox, then you have a problem, <u><font color="pink">you have to change the encoding manually to figure it out.</font></u> (if you cannot see any page with IE or firefox, please <a href="http://ibloggedthis.com/2006/05/28/wordpress-caching-wp-cache-plugin-blank-page-bug-fix/" target="_blank">check this link</a>).</p>
<p>So here comes the solution, very simple...</p>
<ul>
<li>1. Open up the WP-Cache folde, and you can see a file named "wp-cache-phase2.php".</li>
<li>2. Open it up, and do a search for “$value =  "text/html; charset” (about line 231).</li>
<li>3. Once you find it, simply replace the whole line  (<font color="red">$value =  "text/html; charset=\"" . get_settings('blog_charset')  . "\"";</font>)<br />
with the following line:</li>
</ul>
<div class="code">$value =  "text/html; charset=" . get_settings('blog_charset')  . "";</div>
<p>4. Now, save, re-upload, sure, you must overwrite the old file. then empty the cache files.</p>
<p>Tips:<br />
It happens coz the old file has two extra double quotation marks so that IE cannot recognize the correct encoding.</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2007. |
	  <a href="http://blog.znsun.com/2007/02/495/wp-cache-plugin-bugfix-for-blank-page">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsun.com/2007/02/495/wp-cache-plugin-bugfix-for-blank-page#comments">One comment</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2007/02/495/wp-cache-plugin-bugfix-for-blank-page/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>用Custom Field控制Google广告</title>
		<link>http://blog.znsun.com/2006/07/438/custom-field-controlled-by-google-ads</link>
		<comments>http://blog.znsun.com/2006/07/438/custom-field-controlled-by-google-ads#comments</comments>
		<pubDate>Wed, 26 Jul 2006 17:39:39 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[电脑技术]]></category>

		<guid isPermaLink="false">http://blog.znsunimage.com/2006/07/27/438</guid>
		<description><![CDATA[关键字：Google Ads, Custom Field, Wordpress, get_post_meta()函数
Wordpress是目前最强大的免费动态blog平台，它模块化的结构也方便高级用户进行必要的定制。
今天，我就利用它的Custom Field做了一个对单独Entry的Google广告控制模块。
过程很简体，会的5分钟内就能搞定。
1.首先，要发布Google广告，必须要去Google Adsense申请一个帐号；另外，本方法针对单独entry操作，因此需要模板文件中有针对单一entry的模板（如single.php）。
2.根据Google自己的统计，和文章内容镶嵌在一起的广告会得到较高的点击率，所以我建议在豆腐块文章中，各位站长应该使用125x125或者是120X240的小广告，以便能和文章镶嵌；至于镶嵌的代码，我采用表格嵌套的方式（如下图所示）。


3.利用Wordpress的Custom Field新建一个key，取名为no_ads。当不需要显示Google广告时候，可设置为1，其他情况则无需填写该项值(关于更多custom field的知识请点击本条目前面的链接)。
4.具体代码替换见下：
&#160;&#160;1)打开single.php，找到显示entry内容的语句
                 &#60;?php the_content(); ?&#62;
&#160;&#160;2)将该语句替换为如下语句


&#60;table width=&#34;655&#34;&#62; &#60;?php //the big table for content, please change the width by yourself ?&#62;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;tr&#62;&#60;td valign=&#34;top&#34;&#62;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;?php if (get_post_meta($post-&#62;ID, no_ads, true)==false) //利用custom field中的no_ads项来判断是否需要显示Google广告
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;?&#62;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;table width=&#34;130&#34; align=&#34;right&#34;&#62;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;tr valign=&#34;top&#34; align=&#34;right&#34;&#62;&#60;td&#62;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;script type=&#34;text/javascript&#34;&#62;&#60;!--
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;google_ad_client [...]]]></description>
			<content:encoded><![CDATA[<p><font color="pink">关键字：Google Ads, Custom Field, Wordpress, get_post_meta()函数</font></p>
<p>Wordpress是目前最强大的免费动态blog平台，它模块化的结构也方便高级用户进行必要的定制。<br />
今天，我就利用它的Custom Field做了一个对单独Entry的Google广告控制模块。<br />
过程很简体，会的5分钟内就能搞定。</p>
<p>1.首先，要发布Google广告，必须要去<a href="http://www.google.com/adsense/" target="_blank">Google Adsense</a>申请一个帐号；另外，本方法针对单独entry操作，因此需要模板文件中有针对单一entry的模板（如single.php）。</p>
<p>2.根据Google自己的统计，和文章内容镶嵌在一起的广告会得到较高的点击率，所以我建议在豆腐块文章中，各位站长应该使用125x125或者是120X240的小广告，以便能和文章镶嵌；至于镶嵌的代码，我采用表格嵌套的方式（如下图所示）。</p>
<div align="center"><img src="http://blog.znsun.com/wp-content/uploads/2006/07/20060727.gif" width="200" height="133" alt="" title="" /></div>
<p></p>
<p>3.利用Wordpress的<a href="http://codex.wordpress.org/Using_Custom_Fields" target="_blank">Custom Field</a>新建一个key，取名为no_ads。当不需要显示Google广告时候，可设置为1，其他情况则无需填写该项值(关于更多custom field的知识请点击本条目前面的链接)。</p>
<p>4.具体代码替换见下：<br />
&nbsp;&nbsp;1)打开single.php，找到显示entry内容的语句<br />
                 <font color="pink">&lt;?php the_content(); ?&gt;</font><br />
&nbsp;&nbsp;2)将该语句替换为如下语句</p>
<hr />
<p>
<font color="pink">&lt;table width=&quot;655&quot;&gt; &lt;?php //the big table for content, please change the width by yourself ?&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php if (get_post_meta($post-&gt;ID, no_ads, true)==false) //利用custom field中的no_ads项来判断是否需要显示Google广告<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table width=&quot;130&quot; align=&quot;right&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr valign=&quot;top&quot; align=&quot;right&quot;&gt;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;google_ad_client = &quot;pub-XXXXXXXX&quot;; //你能从Google adsense得到自己的client代号，下面广告的颜色参数请自行更改<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;google_ad_width = 125;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;google_ad_height = 125;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;google_ad_format = &quot;125x125_as&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;google_ad_type = &quot;text_image&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;google_ad_channel =&quot;&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;google_color_border = &quot;888888&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;google_color_bg = &quot;555555&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;google_color_link = &quot;FFCCFF&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;google_color_text = &quot;FFFFFF&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;google_color_url = &quot;FFFF99&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--&gt;&lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script type=&quot;text/javascript&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php the_content(); ?&gt;<br />
&lt;/td&gt;&lt;/tr&gt;<br />
&lt;/table&gt;</font></p>
<hr />
<p>实际的结果，在我blog上就能看到。<a href="http://blog.znsun.com/2006/07/27/438" target="_blank">本entry</a>单独打开时能看到右侧的Google广告，而<a href="http://blog.znsun.com/2006/06/21/430" target="_blank">另一个entry</a>中，no_ads的值设为1，点击后可以看到google 广告没有被显示。</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2006. |
	  <a href="http://blog.znsun.com/2006/07/438/custom-field-controlled-by-google-ads">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsun.com/2006/07/438/custom-field-controlled-by-google-ads#comments">No comment</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2006/07/438/custom-field-controlled-by-google-ads/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[电脑] 用好你的trackback</title>
		<link>http://blog.znsun.com/2005/03/3/computer-make-good-use-of-your-trackback</link>
		<comments>http://blog.znsun.com/2005/03/3/computer-make-good-use-of-your-trackback#comments</comments>
		<pubDate>Tue, 08 Mar 2005 23:14:43 +0000</pubDate>
		<dc:creator>SUN</dc:creator>
				<category><![CDATA[与时俱进]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.znsunimage.com/wordpress/?p=3</guid>
		<description><![CDATA[在你的Movable Type环境下，编辑你的Blog，可以实现网站之间的互相通告，也就是从一个web服务器发送到其他的服务器的短消息(a small message)。
这是一个为自己的网站做广告的极好方法。
“A Beginner's Guide to TrackBack”一文，对在MT中如何使用TrackBack做了详细地说明，下面就是学习笔记。
什么是TrackBack?
　　简单说来，TrackBack被设计用来提供一种方法以实现网站之间的互相通告：它是一种方法，能让甲对乙说（甲、乙指两个人，下同），“这篇文章可能是你感兴趣的”。要实现这个动作，甲向乙发送一个TrackBack ping即可。
　　TrackBack ping:在这种情况下，一个ping就是一条从一个web服务器发送到另一个服务器的短消息(a small message)。

历史
　　TrackBack在2002年秋第一次以开放规范的形式发布。MT2.2作为一种协议和一项功能对其进行了实现，这是TrackBack的第一个实现。由于只有众多的站点都支持TrackBack，它的真正价值才能得以体现，所以TrackBack从一开始就被设计为一个开放系统：一个其它的 blog工具能很简单地实现的开放系统。
　　截止目前，已有下列工具支持TrackBack:
    Movable Type Bloxsom Blojsom Nucleus B2 Radio TrackBack standalone Tool
如何使用TrackBack
　　TrackBack的使用依赖于具体的blog/trackback工具。下面主要针对MT的TrackBack使用。
小书签(bookmarklet)
　　在MT中使用TrackBack的最简单的方法，是借助小书签，它利用其自动发现功能可以从你正在阅读的当前页面中找到一组可进行TrackBack的文章链接。（自动发现意味着你无需做任何相关的工作，因为系统会替你完成）。如果你还没有在MT中设置过小书签，则：
登录MT点击“设置小书签”(Set Up Bookmarklets)
配置小书签的显示
　　注意：一定要确保选中了”TrackBack items”选项，因为这是神奇的自动发现功能的开关。
　　通过点击下列选项前的框，来选择你想在小书签中显示的内容。然后点击“创建”(create)。
安装小书签
　　将“Post to MT Weblog”链接用鼠标拖到”链接”工具栏（或是者收藏夹里中），它的标题就是“Post to MT Weblog”。（对IE用户来说，还可以把一个”MT It!”加入右键菜单，对当前的页面点击右键时选中此菜单项，也能实现小书签的功能）.
在MT的某些汉化版本中，需要将$MTHOME/lib/MT/L10N/zh_cn.pm做如下修改：
'Post to MT Weblog' => '',
改为
'Post to MT Weblog' => 'Post to MT Weblog',
，否则看不到这个链接。
　　当你阅读其它blog上感兴趣的文章时，点击“Post to MT Weblog”，如果当前页面中可以TrackBack的文章，它的标题将会自动加入到一个下拉列表中供选择来ping(如果只有一个满足要求的文章，则会用checkbox选项代替的下拉列表)。页面上显示其它元素，都是你在前面配置时选中的。如果那时所有项都选择了，则页面跟正常的”新增文章”非常相似。相关的项都输入完后，点击“保存”（post），则在重建立文章以后，系统会自动ping你从下拉列表中选中的那篇文章。
　　这儿有一个操作演示录像（9M大小），是mov格式，需要apple的QuickTime播放器播放。
通过文章编辑表单来TrackBack ping
　　如果你不想用小书签，仍可以在MT中使用TrackBack ping功能，只是不是那么简单而已。这时，需要找到被ping的目标文章的TrackBack Ping [...]]]></description>
			<content:encoded><![CDATA[<p>在你的Movable Type环境下，编辑你的Blog，可以实现网站之间的互相通告，也就是从一个web服务器发送到其他的服务器的短消息(a small message)。<br />
这是一个为自己的网站做广告的极好方法。<br />
“A Beginner's Guide to TrackBack”一文，对在MT中如何使用TrackBack做了详细地说明，下面就是学习笔记。</p>
<p>什么是TrackBack?<br />
　　简单说来，TrackBack被设计用来提供一种方法以实现网站之间的互相通告：它是一种方法，能让甲对乙说（甲、乙指两个人，下同），“这篇文章可能是你感兴趣的”。要实现这个动作，甲向乙发送一个TrackBack ping即可。<br />
　　TrackBack ping:在这种情况下，一个ping就是一条从一个web服务器发送到另一个服务器的短消息(a small message)。<br />
<span id="more-3"></span><br />
历史<br />
　　TrackBack在2002年秋第一次以开放规范的形式发布。MT2.2作为一种协议和一项功能对其进行了实现，这是TrackBack的第一个实现。由于只有众多的站点都支持TrackBack，它的真正价值才能得以体现，所以TrackBack从一开始就被设计为一个开放系统：一个其它的 blog工具能很简单地实现的开放系统。<br />
　　截止目前，已有下列工具支持TrackBack:</p>
<p>    Movable Type Bloxsom Blojsom Nucleus B2 Radio TrackBack standalone Tool</p>
<p>如何使用TrackBack<br />
　　TrackBack的使用依赖于具体的blog/trackback工具。下面主要针对MT的TrackBack使用。</p>
<p>小书签(bookmarklet)<br />
　　在MT中使用TrackBack的最简单的方法，是借助小书签，它利用其自动发现功能可以从你正在阅读的当前页面中找到一组可进行TrackBack的文章链接。（自动发现意味着你无需做任何相关的工作，因为系统会替你完成）。如果你还没有在MT中设置过小书签，则：</p>
<p>登录MT点击“设置小书签”(Set Up Bookmarklets)<br />
配置小书签的显示<br />
　　注意：一定要确保选中了”TrackBack items”选项，因为这是神奇的自动发现功能的开关。<br />
　　通过点击下列选项前的框，来选择你想在小书签中显示的内容。然后点击“创建”(create)。</p>
<p>安装小书签<br />
　　将“Post to MT Weblog”链接用鼠标拖到”链接”工具栏（或是者收藏夹里中），它的标题就是“Post to MT Weblog”。（对IE用户来说，还可以把一个”MT It!”加入右键菜单，对当前的页面点击右键时选中此菜单项，也能实现小书签的功能）.</p>
<p>在MT的某些汉化版本中，需要将$MTHOME/lib/MT/L10N/zh_cn.pm做如下修改：<br />
'Post to MT Weblog' => '',<br />
改为<br />
'Post to MT Weblog' => 'Post to MT Weblog',</p>
<p>，否则看不到这个链接。<br />
　　当你阅读其它blog上感兴趣的文章时，点击“Post to MT Weblog”，如果当前页面中可以TrackBack的文章，它的标题将会自动加入到一个下拉列表中供选择来ping(如果只有一个满足要求的文章，则会用checkbox选项代替的下拉列表)。页面上显示其它元素，都是你在前面配置时选中的。如果那时所有项都选择了，则页面跟正常的”新增文章”非常相似。相关的项都输入完后，点击“保存”（post），则在重建立文章以后，系统会自动ping你从下拉列表中选中的那篇文章。</p>
<p>　　这儿有一个操作演示录像（9M大小），是mov格式，需要apple的QuickTime播放器播放。<br />
通过文章编辑表单来TrackBack ping<br />
　　如果你不想用小书签，仍可以在MT中使用TrackBack ping功能，只是不是那么简单而已。这时，需要找到被ping的目标文章的TrackBack Ping URL。下面描述一下如何一步步的操作。注意：TrackBack Ping Url不是文章的永久链接，而是另外一个链接。</p>
<p>找到你感兴趣的文章<br />
　　这是你的评论对象，也将是你的文章发送TrackBack Ping到的目标对象。如果这个目标文章，接收“TrackBack Ping”，则会自动显示一个”TrackBack”链接，紧挨着“Comments”链接。</p>
<p>找到TrackBack Ping Url<br />
　　点击上述”TrackBack”链接，页面上会显示此文章的”TrackBack Ping URL”，接下来是一些收到的“TrackBack ping”。复制这个”TrackBack Ping URL”。</p>
<p>登录到你的MT<br />
选择一个BLOG<br />
点击”新增文章“(New Entry)<br />
将刚才复制的内容粘贴到“Urls to ping”输入框中。<br />
　　如果看不到这个输入框，则点击右下角的”Customize the display of this page “链接来修改你的编辑页面显示。</p>
<p>编辑文章内容，点击保存按钮<br />
　　当文章被创建以后，接着显示”Ping...”窗口。此时，MT自动发送”TrackBack Ping”去通知目标文件。</p>
<p>利用”自动发现“功能来发送”TrackBack Ping”<br />
　　在MT中，最后一种使用”TrackBack Ping”的方法，是在你的blog设置中打开“自动发现(TrackBack auto-discovery,也有人译为自动挖掘)”选项。</p>
<p>　　当此选项打开后，MT利用自动发现在功能分析你的文章中的链接所对应的页面，是否接收“TrackBack Ping”，如果接收，则自动从你的文章发送一个”TrackBack Ping”到那个页面。此时，你不需要在”Urls to Ping”输入框中输入内容，也不需要用小书签来查找可ping的链接。</p>
<p>协议<br />
　　TrackBack是一个基于REST 的点对点(peer-to-peer)通信和网站间通告的架构。协议基于”推送(Push)”的原理，而不是“拉取(pull)”：如果你想和其它站点分享信息，你要初始化连接，而不是等待其它站点发现你(和你的信息)。借助TrackBack，站点可以交流相关资源。例如，如果甲想通知乙他写了一些有意思的/想关的/震撼性的东东，甲发送一个TrackBack ping给乙。这完成了两件事：<br />
　<br />
乙能自动列出那些引用他的某篇文章的网站，到他网站的访问者能读到网络上所有相关的文章，包括甲的文章。网页机器人也能访问这些信息，从而能得站点间的联系图。<br />
ping在他的文章和你的文章间提供了一种稳固的、直接的链接，而不是那种依赖于外部行为（某人点击那个连接）的非直接连接(如反向连接referrer)。</p>
<p>　　TrackBack协议对任何blog工具都是开放的，具体规范参见http://www.movabletype.org/docs/mttrackback.html, 或我的翻译.</p>
<p>目前的应用<br />
远程评论<br />
　　目前，TrackBack主要被用作一个远程评论系统：如果我在我的blog上发表了一篇文章来评价你在你的blog上的文章，我的blog工具会通报给你的blog工具以通知你此事。接着你的blog将显示我的文章的摘录部分，并提供了一个回到我的文章的链接。这使那些到你的网站的访问者知道其他人是如何评价你的文章的－－换句话说，就是评论(comment)一样，只是这评论是在我的网站而不是在你的网站上，而在以前我只是在你的文章后留言评论。这让我能控制我的文章。如果我想修改一个打字错误，或者改变一些措词，于是我就可以做到。如果我在你的站点上留言，我没有权限来修改那些文字。换句话说， TrackBack使你更能控制你的内容。<br />
　　TrackBack ping的威力，在于它创建了你我站间的一个直接引用。这个引用可以用来建立一个分布式的交谈(conversation)。例如，另外一个 blogger(女)发布文章阐述了对我的文章的想法，并发送给我一个TrackBack ping.这个交谈(conversation)可从你最初的文章，追踪到我这儿，再到她那儿。这个线路可以通过TrackBack的元数据自动画出来。请看这个线路：http://www.sixapart.com/safari-thread.html,它开始的文章是http: //www.sixapart.com/log/2003/01/initial_reactio.shtml.</p>
<p>内容聚合<br />
　　虽然到目前TrackBack最流行的应用，是以远程评论的形式，一个更令人兴奋的使用已经开始出现了：利用TrackBack来将相关的内容聚合到一个基于主题的仓库（repository）中。这其实是TrackBack最初的设计用途：远程评论来源于一个主题仓库的特殊，即此时的“主题”是一篇 blog文章。<br />
　　内容聚合站点收集关于某个主题的内容。如果你曾试图查找关于某个特定题目的blog文章，这非常不可能，除非是新闻故事或新近发生的事。如果你的题目是关于80年代的音乐，你要花费更多艰苦的时间来找到所有的关于那个主题的blog文章。这到了TrackBack显示身手的时候：通过建立一个关于80 年代音乐的文章仓库，其它的内容作者可以利用TrackBack自动ping这个仓库。任何查找关于80年代音乐的文章的人，可到这个页面，找到那些指向这个站点的文章。<br />
　　这些内容仓库可以集中存放(如Internet Topic Exchange),也可以分布式存放。以MT为例，你可以设置任何blog分类来接收TrackBack ping,这使你成为你感兴趣的某个主题的信息源。</p>
<p>登录MT<br />
选择blog，用以存放允许TrackBack的分类<br />
点击“分类(categories)”<br />
编辑类别属性<br />
点击某类别的“编辑类别属性(edit category attribute)”连接</p>
<p>设置接收TrackBack　ping 为on.</p>
<p>在模板中增加显示收到的ping的代码</p>
<p>"><$MTPingTitle$></p>
<p>在这个例子中，TrackBack字符串是一个分类的名字，实际应用中以真实的分类名替换它。<br />
公开发布分类的TrackBack URL<br />
是为了让更多的人向这个类另发送ping.这个URL你可以从类编辑页面得到。</p>
<p>一些以这种方式使用TrackBack的站点：<br />
Austin Bloggers<br />
SXSWTrack<br />
BlogPopuli</p>
<p>将来可能的应用<br />
内容控制<br />
　　随着时间的流失，你在你的blog上的花费的时间越来越多，你的blog的内容也越来越充实，你可能想控制所有你在其它的blog或系统中发布的内容。例如，如果你曾就某人的文章在其站点上发布过自己的想法，他想将这些想法发布到自己的blog中来，于是你可就可控制它们了。或者，如果你在 <a href="http://amazon.com" title="http://amazon.com" target="_blank">amazon.com</a>上发表过评述(review)，你可能想把这个评述组织到你的自己的站点中来。TrackBack有助于做到这些。有个例子， Matt Haughey的Posted Elsewhere工具条(<a href="http://a.wholelottanothing.org/" title="http://a.wholelottanothing.org/" target="_blank">a.wholelottanothing.org/</a>)，将他在别外写的内容聚合起来。<br />
　　反过来，TrackBack可以工作：不是在别人的站点上发表文章，而是作者在自己的blog上发表文章，然后将TrackBack ping发往其它站点。例如，如果amazon.com评述可以接收TrackBack ping,你可信息控制在自己的网站上，让amazon.com连到你这儿。</p>
<p>我的一点想法<br />
　　一个页面，要想提高自己在 google的pagerank值，关键在于能得到来自高pagerank值的页面的链接。一般说来，这种连接的建立，低值的页面只能被动的接收，而 blog工具中的comments和trackback，提供了一种在别人的页面上主动建立连接的方法。如果google没有针对这种情况调整算法，这将成为一种快速提升pagerank的途径。尤其是“自动发现”功能，能自动找出链接，检查相关的页面是否接收trackback ping,将会更加剧对这种手段的利用。<br />
　　真的是这样的吗？<br />
参考资料<br />
A Beginner's Guide to TrackBack</p>
<p><a href="http://www.movabletype.org/trackback/beginners/" title="http://www.movabletype.org/trackback/beginners/" target="_blank">www.movabletype.org/trackback/beginners/</a></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; SUN for <a href="http://blog.znsun.com">徘徊在玻璃之城</a>, 2005. |
	  <a href="http://blog.znsun.com/2005/03/3/computer-make-good-use-of-your-trackback">Permalink</a> |
	  <a href="http://blog.znsun.com/category/tech" title="View all posts in 与时俱进" rel="category tag">与时俱进</a> | 
	  <a href="http://blog.znsun.com/2005/03/3/computer-make-good-use-of-your-trackback#comments">No comment</a></p> ]]></content:encoded>
			<wfw:commentRss>http://blog.znsun.com/2005/03/3/computer-make-good-use-of-your-trackback/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.369 seconds -->
<!-- Cached page served by WP-Cache -->

