喻名堂曾经也为了自己的wordpress能启用gzip压缩功能搜索过很多的方法,在这里喻名堂整理出5种在网上搜索到的方法,一方面备忘,一方面也方便其他人参考与借鉴,总有一种你能用得着!
1、打开网站根目录里面的index.php文件(注意不是主题里面的,是根目录),找到:
- define(’WP_USE_THEMES’, true);
在下面添加如下代码:
- ob_start(‘ob_gzhandler’);
服务器必须支持Zlib Compression Functions才有办法启动,可以丢个网页探针到服务器上查询看看就知道了
这种方法是最简单的一种,不过有一个小弊端,就是每次程序升级都要重新修改文件。
2、第二种方法需要服务器支持.htaccess文件。在wordpress根目录中创建一个.htaccess文件,通过.htaccess文件有两种代码可以实现启用gzip压缩,代码如下:
第一种:
- php_value output_handler ob_gzhandler
第二种:
- <IfModule mod_expires.c>
- ExpiresActive On
- ExpiresByType image/gif A2592000
- ExpiresByType image/jpeg A2592000
- ExpiresByType image/png A2592000
- ExpiresByType image/x-icon A2592000
- ExpiresByType application/x-javascript A604800
- ExpiresByType text/css A604800
- </IfModule>
- <IfModule mod_deflate.c>
- SetOutputFilter DEFLATE
- AddOutputFilterByType DEFLATE text/html text/css image/gif image/jpeg image/png application/x-javascript
- </IfModule>
3、通过php.ini来启用GZIP,前提是服务器要支持php.ini重定义,可以在php.ini中增加如下代码:
zlib.output_compression_level = number( number为1—9的值,1的压缩比率最低, 建议取 5)
需要注意的是如果在.htaccess文件中禁止了gzip功能的话,那在php.ini文件中开启后也需在.htaccess文件中开启 gzip,否则没有效果。
4、安装wordpress的GZIP插件
插件名称:gzippy
下载地址:http://wordpress.org/extend/plugins/gzippy/
5、找到主题下面的function.php文件,将如下代码添加到此文件中:
- //Gzip压缩
- function dtheme_gzip() {
- if ( strstr($_SERVER['REQUEST_URI'], ‘/js/tinymce’) )
- return false;
- if ( ( ini_get(‘zlib.output_compression’) == ‘On’ || ini_get(‘zlib.output_compression_level’) > 0 ) || ini_get(‘output_handler’) == ‘ob_gzhandler’ )
- return false;
- if (extension_loaded(‘zlib’) && !ob_start(‘ob_gzhandler’))
- ob_start();
- }
- add_action(‘init’,'dtheme_gzip’);
- //代码结束
以上5种方法都可以开启wordpress的GZIP压缩功能,但是只能使用一种方式来开启,不然有可以会冲突。第2和3种不适合喻名堂的wrodpress博客,喻名堂又不想用插件,所以喻名堂是用的第5种,推荐大家也用第5种,比较方便。
设置好以后就可以在http://tool.chinaz.com/Gzips/测试一下压缩效果,上一张喻名堂博客检测的效果图
如果想及时了解喻名堂的最新动态,请点击订阅订阅本站,有什么好的建议和意见的可以留言和喻名堂讨论交流。
虚拟主机若未开启此功能,是不是就无法开启?
@Cain 也不一定,你可以看看这5种方法各自需要什么前提条件