2008年1月18日星期五

关于WordPress的静态化方法

  前几天介绍“自定义的WordPress数据库错误”的时候,有个读者留言询问WordPress完全静态化的插件,我今天就推荐一个插件,可以将WordPress实现部分静态,包括最主要的首页和文章页面,目录页目前还没有静态化。

  这个插件的名字叫cos-html-cache,安装这个插件需要虚拟主机支持mod_rewrite功能(Linux+Apache架构),先通过修改永久链接格式将WordPress的链接结构修改为“伪HTML”格式,然后启用这个插件可以将文章页生成完全的静态HTML文章。这个插件还不能支持全静态化,但是文章页和首页的访问是最大的,这种静态化也可以极大的提高系统的效率,减少对数据库的访问量。

  启用这个全静态插件后,对于某些需要访问数据库的WordPress插件,可能会使其无法运行,例如原始版本的WP-PostViews插件,可以参考我对于WP-PostViews的修改方法,将插件修改为JavaScript模式即可。

  Wordpress的cos-html-cache插件为我们系统的静态化提供了非常好的解决方案,目前的版本是2.7.3。它可以将我们首页及文章(Post)进行静态化,使得访问速度大大提高,减少了服务器端的压力。不过对于页面、标签和分类,却不起作用。

  为了能够实现WordPress的标签和分类的静态化,需要修改一下这个插件的代码,修改方法是:

  找到下面这一行:

if( substr_count($_SERVER['REQUEST_URI'], '.htm') || ( SCRIPT_URI == CosSiteHome) ){

  将其修改为:

if( substr_count($_SERVER['REQUEST_URI'], 'page') || substr_count($_SERVER['REQUEST_URI'], 'tag') || substr_count($_SERVER['REQUEST_URI'], 'category') || substr_count($_SERVER['REQUEST_URI'], '.htm') || ( SCRIPT_URI == CosSiteHome) ){

  在下面这一行:

if(  substr_count($_SERVER['REQUEST_URI'], '../'))  $is_buffer = false;

  的后面增加一行:

if(  substr_count($_SERVER['REQUEST_URI'], 'comment'))  $is_buffer = false;

  找到下面这一行:

add_action('get_footer', 'CosSafeTag');

  用//将其注释。

  总的来说,这个插件的工作效率比WP-Cache要高,对于系统的性能有很大的提高,建议大访问量的WordPress博客尝试安装一下这个静态化插件。cos-html-cache的下载地址是: http://wordpress.org/extend/plugins/cos-html-cache/