让 GZIP 与 cos-html-cache 共存

林继 WordPress 2,731 共写了376个字 (2010-08-24 22:46:27) 没有评论 打印 扫描二维码 百度未收录

出处:来自网络
用过 cos-html-cache 插件的人都知道,cos-html-cache 需要在 WordPress 后台关闭 gzip 压缩选项才能正常工作。因为 cos-html-cache 只静态化首页和日志页面,这样一来像分类浏览页面、按日期浏览页面、搜索结果页面等等既没有静态化,也没有享受到 gzip 压缩带来的好处。

其实有时候鱼和熊掌还是可以兼得的。Wordpress 后台的 gzip 压缩设置是个全局选项,它不区分页面类型,那么我们可以手动对需要压缩的页面启用 gzip 。将以下代码添加到主题目录下的 header.php 文件中的 HTML 代码之前:

  1. <?php
  2. // 下面的代码大部分来自 WordPress 的 gzip_compression 函数
  3. // 如果关闭了 gzip 并且启用了 cos-html-cache 插件
  4. if ( !get_option( 'gzipcompression' ) && function_exists('CosSafeTag')) {
  5.   // 如果不是日志页或者首页
  6.   if(!(is_single() || (is_home() && !is_paged()))){
  7.     if ( ( ini_get( 'zlib.output_compression' ) == 'On' || ini_get( 'zlib.output_compression_level' ) > 0 ) || ini_get( 'output_handler' ) == 'ob_gzhandler' ) {
  8.       // Do nothing
  9.     } else {
  10.       if ( extension_loaded( 'zlib' ) ) {
  11.         ob_start( 'ob_gzhandler' );
  12.       }
  13.     }
  14.   }
  15. }
  16. ?>

本来也没想到要这么做,因为折腾 WordPress 的 404 页面过程中发现打开 gzip 后 IE 就可以正常显示错误页面,索性将其它没有被静态化的页面一并压缩了。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >