WordPress免插件压缩HTML和GZIP

wordpress用户越来越多,后台插件也越来越多,很多站长都喜欢折腾,喜欢折腾一些新功能,导致程序越来越臃肿,难免会出现服务器方面错误,作为强迫症的我,能不用插件就尽量不用插件。今天来介绍免插件压缩代码。

HTML压缩

在wordpress主题的functions.php里面添加上以下函数:

/*压缩html代码*/ 
function wp_compress_html(){
 function wp_compress_html_main ($buffer){
 $initial=strlen($buffer);
 $buffer=explode("", $buffer);
 $count=count ($buffer);
 for ($i = 0; $i <= $count; $i++){
 if (stristr($buffer[$i], ' ')) {
 $buffer[$i]=(str_replace(" ", " ", $buffer[$i]));
 } else {
 $buffer[$i]=(str_replace("\t", " ", $buffer[$i]));
 $buffer[$i]=(str_replace("\n\n", "\n", $buffer[$i]));
 $buffer[$i]=(str_replace("\n", "", $buffer[$i]));
 $buffer[$i]=(str_replace("\r", "", $buffer[$i]));
 while (stristr($buffer[$i], ' ')) {
 $buffer[$i]=(str_replace(" ", " ", $buffer[$i]));
 }
 }
 $buffer_out.=$buffer[$i];
 }
 $final=strlen($buffer_out);
 $savings=($initial-$final)/$initial*100;
 $savings=round($savings, 2);
 $buffer_out.="\n";
 return $buffer_out;
 }
 ob_start("wp_compress_html_main");
}
add_action('get_header', 'wp_compress_html');

但是页面压缩也是有利有弊,难免会出现这样那样的问题,比如说,某些位置的某些特效失效了,如果你主题文件中某一段代码不想被压缩,或者文章中有不想压缩的内容,可手动添加不压缩代码段。

<!--wp-compress-html--><!--wp-compress-html no compression-->此处代码不会被压缩,主要是避免压缩带来的错误,比如JS错误(//文章中在文本模式下添加)<!--wp-compress-html no compression--><!--wp-compress-html-->

如果博客使用了Crayon Syntax Highlighter高亮插件,那么启用代码压缩之后,你会发现在文章页面双击代码切换到纯文本模式时,会发现代码全挤在一团了!下面代码是解决办法:

//判断文章中是否有代码,有代码不压缩
function unCompress($content) {
if(preg_match_all('/(crayon-|<\/pre>)/i', $content, $matches)) {
$content = ' '.$content;
$content.= ' ';
}
return $content;
}
add_filter( "the_content", "unCompress");

HTML压缩率查看:右键点击源代码底部即可查看压缩信息

GZIP压缩

//开启GZIP压缩
function gzip() {
	ob_start('ob_gzhandler');
}
if(!stristr($_SERVER['REQUEST_URI'], 'tinymce') && !ini_get('zlib.output_compression')) {
	add_action('init', 'gzip');
}

Gzip压缩JS和CSS

<!--?php if(extension_loaded('zlib')) {ob_start('ob_gzhandler');} header("Content-type: text/css"); ?-->

将以下代码加入style.css 文件的的尾部:

<!--?php if(extension_loaded('zlib')) {ob_end_flush();} ?-->

将文件更名为:style.css.php
找到主题文件中引用style.css处,将其更名为:style.css.php
Gzip压缩JS方法:
步骤和压缩CSS文件一样,只是第1步的代码改为:

<!--?php if ( extension_loaded('zlib') ) {ob_start('ob_gzhandler');} header("Content-Type: text/javascript"); ?-->

第2步与上方相同,第3步、第4步文件名对应修改即可。

给TA赏糖
共{{data.count}}人
人已赏糖
技术分享

方舟生存进化 (ARK)Linux(CentOS) 开服,MOD安装,设置多通服务器

2023-12-21 17:25:30

技术分享

WordPress 6.4 是如何改进对象缓存,提高站点的效率

2023-12-22 14:06:24

0 条回复 A文章作者 M管理员
技术宅评论
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索