2008年2月21日星期四

WordPress静态化插件的BUG修改

  前段时间我曾经介绍了一个WordPress的静态化插件:cos-html-cache,这个插件对于系统的性能有很大的提高,不过在使用的过程中,我发现这个插件有一点小小的瑕疵需要修改,否则对于某些MySQL不稳定的服务器会出现一些错误信息写入最终HTML文件。

  对于我在DreamHost上使用这个插件,我发现在某些随机时候,显示文章时系统并不能正常调用MySQL查询,MYSQL会返回一个分配内存错误的信息,通常情况下刷新一下就会正常,但是cos-html-cache却将生成的错误信息也生成了html文件替换了正确的文章地址,这使得启用这个插件后,一旦MySQL查询错误就不会生成正确的文件内容。

  修改的方法很简单,就是在写HTML文件的时候进行一下判断,判断文件正确才写HTML文件,修改方法是:

  打开2.3版本的cos-html-cache.php文件,找到第81行的$fp = @fopen( $path , "w+" )语句,在其前面增加下面两行:

 if ( !strstr( $Content, '</html>' ) )
        return;

  上面的“</html>”可替换为博客底部的一些特征字符串,如版权信息,以用来判断MySQL查询是否是出错的。