<?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; WP Super Cache</title>
	<atom:link href="http://fairyfish.net/tag/wp-super-cache/feed/" rel="self" type="application/rss+xml" />
	<link>http://fairyfish.net</link>
	<description>关注 WordPress，关注互联网</description>
	<lastBuildDate>Wed, 28 Jul 2010 17:36:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<link rel="http://api.friendfeed.com/2008/03#sup" xmlns="http://www.w3.org/2005/Atom" type="application/json" href="http://friendfeed.com/api/public-sup.json#a18d202061"/>		<item>
		<title>WP Super Cache 技巧：实时更新首页</title>
		<link>http://fairyfish.net/2009/12/05/wp-super-cache-refresh-front-page/</link>
		<comments>http://fairyfish.net/2009/12/05/wp-super-cache-refresh-front-page/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 15:09:13 +0000</pubDate>
		<dc:creator>Denis</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress 插件]]></category>
		<category><![CDATA[WP Super Cache]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://fairyfish.net/?p=2032</guid>
		<description><![CDATA[WP Super Cache 把整个页面直接生成 HTML 文件，使得 WordPress 博客将显著的提速。如果 WordPress 的首页显示的不是最新日志，而是一个页面，并且这个页面包含实时更新的部分，那么就会存在一个问题，那么这个页面就不会实时更新。我们可以通过 WP Super Cache 提供的 wp_cache_post_edit 函数刷新首页。]]></description>
			<content:encoded><![CDATA[<p><a href="http://fairyfish.net/2008/10/27/wp-super-cache/">WP Super Cache 是我推荐的最佳 WordPress 缓存插件</a>，它把整个页面直接生成 HTML 文件，这样 Apache 就不用解析 PHP 脚本，通过使用这个插件，能使得你的 WordPress 博客将显著的提速。<br />
<span id="more-2032"></span><br />
如果 WordPress 的首页显示的不是最新日志，而是一个页面，并且这个页面包含实时更新的部分，如<a href="http://fairyfish.net/">我爱水煮鱼</a>的首页包含最新日志，那么就会存在一个问题，那么这个页面就不会实时更新。</p>
<p>这里我提供一个技巧，可以让你在使用 WP Super Cache 的这个静态缓存插件提速的同时，也能够让首页实时更新，WP Super Cache 是通过 <code>wp_cache_post_edit</code> 这个函数来编辑缓存的，它的参数是日志或者页面的 ID。</p>
<p>所以我们首先获取用于显示首页的页面的 ID，然后在日志更新或者删除的时候，或者有新留言的时候（如果首页没有包含最新留言，这个可不必），刷新首页。所以大致的代码如下：</p>
<pre>
<span style="color: Blue;">&lt;?php</span><span style="color: Gray;">
</span><span style="color: Blue;">add_action</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">publish_post</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">refresh_front_page</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//发布或者更新日志时候刷新首页</span><span style="color: Gray;">
</span><span style="color: Blue;">add_action</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">edit_post</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">refresh_front_page</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//有新留言或者留言被删除的时候刷新首页</span><span style="color: Gray;">
</span><span style="color: Blue;">add_action</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">delete_post</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">refresh_front_page</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//删除日志时候刷新首页</span><span style="color: Gray;">
</span><span style="color: Blue;">add_action</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">publish_phone</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">refresh_front_page</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//通过 email 发布日志之后刷新首页</span><span style="color: Gray;">
&nbsp;
</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">refresh_front_page</span><span style="color: Olive;">(){</span><span style="color: Gray;">
&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">$front_page_id</span><span style="color: Gray;"> = </span><span style="color: Blue;">get_option</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">page_on_front</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//获取显示首页的页面 ID</span><span style="color: Gray;">
&nbsp;&nbsp; &nbsp;</span><span style="color: Blue;">wp_cache_post_edit</span><span style="color: Olive;">(</span><span style="color: #00008b;">$front_page_id</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//刷新该页</span><span style="color: Gray;">
</span><span style="color: Olive;">}</span><span style="color: Gray;">
</span><span style="color: Blue;">?&gt;</span>
</pre>
<p>把这段代码复制到主题的 functions.php 即可。</p>
<p>当然如果你想刷新某个页面，也可以是用 <code>wp_cache_post_edit</code> 这个刷新它，参数是页面的 ID。</p>
<p>&gt;&gt;&gt;<a href="http://fairyfish.net/2009/12/05/wp-super-cache-refresh-front-page/" title="WP Super Cache 技巧：实时更新首页">继续阅读全文</a> ...</p><hr />
<p><a href="http://gpk.im/denis"><img src="http://www.geekpark.net/a/46860.jpg"></a></p>
<p>
&copy; <a href="http://fairyfish.net/" title="我爱水煮鱼">我爱水煮鱼</a>
 / <a href="http://fairyfish.net/bookmark/?url=http://fairyfish.net/2009/12/05/wp-super-cache-refresh-front-page/&title=WP+Super+Cache+%E6%8A%80%E5%B7%A7%EF%BC%9A%E5%AE%9E%E6%97%B6%E6%9B%B4%E6%96%B0%E9%A6%96%E9%A1%B5&tags=WordPress 插件, WP Super Cache, 缓存, "  title="WP Super Cache 技巧：实时更新首页">收藏本文</a>
 / <a href="http://fairyfish.net/2009/12/05/wp-super-cache-refresh-front-page/#comments" title="WP Super Cache 技巧：实时更新首页">19条评论</a>
 / <a href="http://feed.fairyfish.net" title="订阅我爱水煮鱼">RSS 订阅</a>
 / <a href="http://fairyfish.net/go/wpjam" title="WordPress JAM">长期承接 WordPress 项目</a>
 / Hosting by <a href="http://fairyfish.net/2009/10/26/media-temple/" title="Media Teple">(mt) Media Temple</a>
</p><h3>相关日志</h3><ul class="related_post"><li><a href="http://fairyfish.net/2008/10/27/wp-super-cache/" title="最佳 WordPress 缓存插件：WP Super Cache">最佳 WordPress 缓存插件：WP Super Cache</a></li>
<li><a href="http://fairyfish.net/2008/07/22/batcache/" title="WordPress 内存缓存终极加速插件：Batcache">WordPress 内存缓存终极加速插件：Batcache</a></li>
<li><a href="http://fairyfish.net/2008/06/10/wordpress-cache-plugins/" title="WordPress 缓存插件介绍">WordPress 缓存插件介绍</a></li>
<li><a href="http://fairyfish.net/2008/06/05/speed-up-wordpress-plugin-by-using-postmeta/" title="使用 PostMeta 提速 WordPress 插件">使用 PostMeta 提速 WordPress 插件</a></li>
<li><a href="http://fairyfish.net/2008/01/23/using-the-wordpress-object-cache/" title="使用 WordPress 对象缓存">使用 WordPress 对象缓存</a></li>
</ul><img src="http://fairyfish.net/wp-content/plugins/all-in-one/ga.php?utmac=MO-328125-5&amp;utmn=2117958167&amp;utmr=-&amp;utmp=%2Frss%2F2009%2F12%2F05%2Fwp-super-cache-refresh-front-page%2F&amp;utmdt=WP+Super+Cache+%E6%8A%80%E5%B7%A7%EF%BC%9A%E5%AE%9E%E6%97%B6%E6%9B%B4%E6%96%B0%E9%A6%96%E9%A1%B5&amp;guid=ON" />]]></content:encoded>
			<wfw:commentRss>http://fairyfish.net/2009/12/05/wp-super-cache-refresh-front-page/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>最佳 WordPress 缓存插件：WP Super Cache</title>
		<link>http://fairyfish.net/2008/10/27/wp-super-cache/</link>
		<comments>http://fairyfish.net/2008/10/27/wp-super-cache/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 15:01:11 +0000</pubDate>
		<dc:creator>Denis</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress 插件]]></category>
		<category><![CDATA[WP Super Cache]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://fairyfish.net/?p=1713</guid>
		<description><![CDATA[WP Super Cache 是 WordPress 官方开发人员 Donncha 开发，是当前最高效也是最灵活的 WordPress 静态缓存插件。它把整个网页直接生成 HTML 文件，这样 Apache 就不用解析 PHP 脚本，通过使用这个插件，能使得你的 WordPress 博客将显著的提速。]]></description>
			<content:encoded><![CDATA[<p><a href="http://ocaoimh.ie/wp-super-cache/">WP Super Cache</a> 是 WordPress 官方开发人员 <a href="http://ocaoimh.ie/">Donncha</a> 开发，是当前最高效也是最灵活的 WordPress 静态缓存插件。它把整个网页直接生成 HTML 文件，这样 Apache 就不用解析 PHP 脚本，通过使用这个插件，能使得你的 WordPress 博客将显著的提速。<br />
<span id="more-1713"></span></p>
<h2>WP Super Cache 基本介绍</h2>
<p>WP Super Cache 是基于 Ricardo Galli Granada 的 <a href="http://mnm.uib.es/gallir/wp-cache-2/">WP-Cache 2</a>。WP-Cache 2 可以缓存你的 WordPress 博客使得不用再次访问数据库，但是它产生的是 PHP 文件而不是 HTML 文件，所以还需要 PHP 引擎去解析它们。而 WP Super Cache 则直接产生 HTML 文件，所以服务器不用解析甚至一行 PHP 代码，所以缓存之后的速度就和访问你服务器上的一张图片一样快。</p>
<h2>WP Super Cache 是如何工作的 </h2>
<p>一半常规的缓存办法是手工把动态页面保存为 HTML 代码，WP Super Cache 也是通过同样的方式的，但是通过自动的方式完成这个过程。</p>
<p>当你一个访问者来的你的站点，他没有登入或者也没有留言，这样他得到是一个在 WordPress cache 文件夹下的 supercache 子文件夹下的纯静态文件，其实你都可以自己到上面的 supercache 目录下去查看同样的永久链接的 HTML 文件的备份。判断一个页面是否已经被缓存了，查看该页面的源代码，看看最后一行是否有 &lt;!&#8211; super cache &#8211;&gt; 或者 &lt;!&#8211; super cache gz &#8211;&gt;。</p>
<p>如果访问者已经登陆或者留了言，就会返回 WP Cache 函数生成的页面，并且最后一行会有 &lt;!&#8211; Cached page served by WP-Cache &#8212; &gt;</p>
<h2>WP Super Cache 基本使用</h2>
<p>上传 WP Super Cache 到插件目录，并在 Plugin 目录下激活之后，就可以到 Setting >  WP Super Cache 进行详细配置。</p>
<h3>WP Super Cache Status</h3>
<p>首先是三个选项：</p>
<ul>
<li>ON (WP Cache and Super Cache enabled)</li>
<li>HALF ON (Super Cache Disabled, only legacy WP-Cache caching.)</li>
<li>OFF (WP Cache and Super Cache disabled)</li>
</ul>
<p>默认情况下，WP Super Cache 是没有开启的，所以在这里选择下，需按则第一个，就是 Super Cache，缓存为静态文件，如果第二种情况呢，则和 WP-Cache 一致。</p>
<p>Proudly tell the world your server is Digg proof! (places a message in your blog&#8217;s footer)<br />
这个是说在你的  footer 显示一条信息告诉读者该博客已经缓存了，一般不要这样做。</p>
<p>Clear all cache files when a post or page is published. (This may significantly slow down saving of posts.)<br />
这个是说发布新日志的时候清理所有缓存，这个肯定不能这么干了。</p>
<h3>Super Cache Compression</h3>
<p>启动这个则会成生 <a href="http://fairyfish.net/2008/04/07/gzip/">gzip</a> 压缩，节省你的带宽。</p>
<h3>Mod Rewrite Rules</h3>
<p>WP Super Cache 是通过 Mod Rewrite 实现访问静态文件的，所以这里在是显示添加的 Mod Rewrite 规则。</p>
<h3>Expiry Time and Garbage Collection</h3>
<p>过期时间和垃圾收集，这里主要设置缓存文件过期时间，和多久删除一次过期的缓存文件。个人建议：一般缓存时间设置为1天（86400）左右，缓存删除时间为1个小时一次。</p>
<h3>Accepted filenames, rejected URIs</h3>
<p>这里设置一些链接不需要缓存，并且可以设置特例。</p>
<h3>Rejected User Agents</h3>
<p>这里设置某些 User Agents 来访问的时候不会缓存。比如 Google 和百度爬虫等。</p>
<h3>Cache Contents</h3>
<p>这里显示你博客缓存文件和过期文件的数量，你可以手工删除缓存文件和过期文件，因为 WP Super Cache 有垃圾回收机制，所以这里不帮不用手工删除，如果当你测试某个插件，看不到效果的时候，如果确定是缓存的原因，你可以到这里手工删除测试下。</p>
<h3>Lock Down</h3>
<p>一般情况下，某篇日志如果有了新留言，就会更新缓存文件，不过这篇日志是否已经到了缓存时间，但是在某种情况，你预料到你的博客可能会有很大流量和留言，候重复更新缓存文件可能并不是很好的选择，速度反而更慢，这个时候你就可以锁定缓存文件，新留言不再更新缓存日志。</p>
<p>插件作者也给出了一段代码，如果你的博客锁定了之后，可以通过判断一个变量 <code>WPLOCKDOWN</code> 是否存在告来诉读者，你博客已经锁定，待会才会更新，当然了，一般博客不建议使用。</p>
<h3>Directly Cached Files</h3>
<p>直接缓存文件，根据永久链接直接缓存，比如你的关于页面是不太更新，你就可以直接缓存它到你的 about 目录下（假如你的关于页面的 slug 是 about），这个直接缓存不会过期。适合一些经常性不更新的静态页面。</p>
<h3>Configuration messed up?</h3>
<p>因为上面那么多配置，你可能搞糊涂了，那么这里可以让你一键恢复到默认。</p>
<h3>Cache Plugins</h3>
<p>缓存插件还支持附加插件，比如作者自己就提供一个插件：<a href="http://ocaoimh.ie/no-adverts-for-friends/">No Adverts for Friends</a>，不对朋友显示广告。</p>
<h2>附加说明</h2>
<ul>
<li>登陆了和留言之后是看不到静态缓存页面的，看到的效果和原来的 WP-Cache 插件一样的，一般来说留言的同学不是那么多。</li>
<li>这个插件通过 Mod Rewrite 来是实现访问静态缓存页面，所以首先你的主机要支持 Mod Rewrite，然后你要在 WordPress 后台启动永久链接。</li>
<li>一些动态的时时更细的插件，如 Recent Comments，Recent Posts 等，一个很好的解决方法是通过 Javascript 来实现。所以同理 Sidebar 更新也只能在静态页面刷新的时候更新。我以后会讲解下如何实现 JS 实现 Recent Comment, Recent Post, 和 PostViews 。</li>
<li>不要使用性能很差的主机，尽管缓存了，但是还是不行的，这里我个人推荐我和朋友一起搞的主机：<a href="http://wfans.org/forums/forum-5-1.html">WFANS 主机</a>。</li>
<li>还有很多依赖于刷新数据的插件，如 SK2, Bad Behaviour 等可能不起作用。缓存总归会带来一点那个灵活性的不足。</li>
</ul>
<p>这个插件我也使用的时间也不是很长，如果大家有什么新的发现，也可以留言告诉我！ <img src='http://fairyfish.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
<p>&gt;&gt;&gt;<a href="http://fairyfish.net/2008/10/27/wp-super-cache/" title="最佳 WordPress 缓存插件：WP Super Cache">继续阅读全文</a> ...</p><hr />
<p><a href="http://gpk.im/denis"><img src="http://www.geekpark.net/a/46860.jpg"></a></p>
<p>
&copy; <a href="http://fairyfish.net/" title="我爱水煮鱼">我爱水煮鱼</a>
 / <a href="http://fairyfish.net/bookmark/?url=http://fairyfish.net/2008/10/27/wp-super-cache/&title=%E6%9C%80%E4%BD%B3+WordPress+%E7%BC%93%E5%AD%98%E6%8F%92%E4%BB%B6%EF%BC%9AWP+Super+Cache&tags=WordPress 插件, WP Super Cache, 缓存, "  title="最佳 WordPress 缓存插件：WP Super Cache">收藏本文</a>
 / <a href="http://fairyfish.net/2008/10/27/wp-super-cache/#comments" title="最佳 WordPress 缓存插件：WP Super Cache">53条评论</a>
 / <a href="http://feed.fairyfish.net" title="订阅我爱水煮鱼">RSS 订阅</a>
 / <a href="http://fairyfish.net/go/wpjam" title="WordPress JAM">长期承接 WordPress 项目</a>
 / Hosting by <a href="http://fairyfish.net/2009/10/26/media-temple/" title="Media Teple">(mt) Media Temple</a>
</p><h3>相关日志</h3><ul class="related_post"><li><a href="http://fairyfish.net/2009/12/05/wp-super-cache-refresh-front-page/" title="WP Super Cache 技巧：实时更新首页">WP Super Cache 技巧：实时更新首页</a></li>
<li><a href="http://fairyfish.net/2008/07/22/batcache/" title="WordPress 内存缓存终极加速插件：Batcache">WordPress 内存缓存终极加速插件：Batcache</a></li>
<li><a href="http://fairyfish.net/2008/06/10/wordpress-cache-plugins/" title="WordPress 缓存插件介绍">WordPress 缓存插件介绍</a></li>
<li><a href="http://fairyfish.net/2008/06/05/speed-up-wordpress-plugin-by-using-postmeta/" title="使用 PostMeta 提速 WordPress 插件">使用 PostMeta 提速 WordPress 插件</a></li>
<li><a href="http://fairyfish.net/2008/01/23/using-the-wordpress-object-cache/" title="使用 WordPress 对象缓存">使用 WordPress 对象缓存</a></li>
</ul><img src="http://fairyfish.net/wp-content/plugins/all-in-one/ga.php?utmac=MO-328125-5&amp;utmn=157555226&amp;utmr=-&amp;utmp=%2Frss%2F2008%2F10%2F27%2Fwp-super-cache%2F&amp;utmdt=%E6%9C%80%E4%BD%B3+WordPress+%E7%BC%93%E5%AD%98%E6%8F%92%E4%BB%B6%EF%BC%9AWP+Super+Cache&amp;guid=ON" />]]></content:encoded>
			<wfw:commentRss>http://fairyfish.net/2008/10/27/wp-super-cache/feed/</wfw:commentRss>
		<slash:comments>53</slash:comments>
		</item>
	</channel>
</rss>
