之前一直在寻找 html 代码压缩和 php 代码压缩的功能方法,因为查看了几个高排名的 wp 主题站都是做了很好的代码压缩,需要对查看源代码时需要对应的属性 id 比较麻烦但是减少空行和间距的位置对访问速度还有蜘蛛爬行上都是有不可争辩的优势的。wordpress 开发者推荐了很多关注主题代码压缩的插件,比如 WP-HTML-Compression 等等,但是插件对于个别的主题兼容程度是不够的而且大多数主题的结构是由开发者自定义的对于自动压缩插件的识别能力也是参差不齐,今天能淘到一个免插件的智能压缩 wordpress 代码的解决方案现在来分享下大家,而且实现也非常的方便。只需要把下面的代码复制到主题文件的主函数文件 functions.php 内:
- //压缩html代码
- function wp_compress_html()
- {
- function wp_compress_html_main ($buffer)
- {
- $initial=strlen($buffer);
- $buffer=explode("<!--wp-compress-html-->", $buffer);
- $count=count ($buffer);
- for ($i = 0; $i <= $count; $i++)
- {
- if (stristr($buffer[$i], '<!--wp-compress-html no compression-->'))
- {
- $buffer[$i]=(str_replace("<!--wp-compress-html no compression-->", " ", $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<!--压缩前的大小: $initial bytes; 压缩后的大小: $final bytes; 节约:$savings% -->";
- return $buffer_out;
- }
- ob_start("wp_compress_html_main");
- }
- add_action('get_header', 'wp_compress_html');
执行代码后,保藏,然后跳至首页,查看源代码是否添加成功。代码的压缩会产生很多的副作用比如说函数实效或是样式错乱等等,那我们就要针对特别的位置对代码进行不压缩的注释的调整。方法如下:
- <!--wp-compress-html--><!--wp-compress-html no compression-->
不被代码压缩的部分
- <!--wp-compress-html no compression--><!--wp-compress-html-->
这段代码注释出来的部分即表示此段加入后,不会被压缩。是不是很容易大家操作下看看吧。