为cos-html-cache插件增加页面(Page)、标签(Tag)和分类(Category)的静态化功能

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

为了能够实现它们,我分析了一下源代码,发现功能没有开启,但是可以实现的。具体修改方法及目的如下:

找到如下三行:

  1. if( substr_count($_SERVER[‘REQUEST_URI’], ‘.htm’) || ( SCRIPT_URI == CosSi­te­Ho­me) ){
  2. if(  substr_count($_SERVER[‘REQUEST_URI’], ‘../’))  $is_buffer = false;
  3. if( !substr_count($buffer, ‘<!–cos-html-cache-safe-tag–>’) ) retu­rn  $buffer;

将他们分别做如下处理:

  1. 修改为:
    if( strpos($_SERVER[‘REQUEST_URI’], ‘page’)==1 || strpos($_SERVER[‘REQUEST_URI’], ‘tag’)==1 || strpos($_SERVER[‘REQUEST_URI’], ‘category’)==1 || substr_count($_SERVER[‘REQUEST_URI’], ‘.htm’) || ( SCRIPT_URI == CosSi­te­Ho­me) ){
  2. 在本行下增加:
    if(  substr_count($_SERVER[‘REQUEST_URI’], ‘comment’))  $is_buffer = false;
  3. 前面加上“//”注释掉本行

分别的原理及目的:

  1. 这个是在检测我们要静态化哪些文件,我为它增加了page、tag和category。当然,这个也和目录的模式有关,比如我的博客中,OpenSolaris的标签地址就是:http://readpaul.com/blog/tag/opensolaris。所以我就找到以ta­g开头的目录并静态化它们
  2. 防止评论内容被静态化
  3. 作者写了个函数,将singlepost(也就是单页页面)、首页都加上了一个安全标签(<!–cos-html-cache-safe-tag–>)。有这个标签的话将不被静态化。而我们需要它们静态化,所以就把这行注释掉好了

本人仅仅是尝试性修改,不保证其完全正确性。有兴趣的话大家可以试试看,呵呵。也欢迎一起交流。

You may also like...

3 Responses

  1. 旅游博客 says:

    收藏了,可能会用到…

  2. Anonymous says:

    正需要这个,谢谢。

  3. 阿推 says:

    用完博主的代码连文章页都不生成了。只能生成首页的。不知道博主有没有测试过就把代码放出来。而且代码的全角符号没有转成半角符号,用博主的代码还得一个一个改。结果改完完全没有用。博主能认真点吗,完全耽误时间啊。

Leave a Reply

Your email address will not be published.

2 × 4 =

使用新浪微博登陆