WordPress前端HTML代码压缩提高网站加载速度(纯代码)

  • A+
所属分类:wordpress建站

对于前端的代码是直接影响到百度搜索抓取效率的,如何高效的对WordPress主题前端代码进行压缩来提升网站加速呢,下面马找钱分享一段代码给大家使用,这个前端代码压缩方法可以高效优化前端访问,但是需要注意,对于部分主题是会对前端的调用动态脚本产生负面影响的,就是说可能导致功能不可用或是错误提示。

第一、实现WordPress前端代码压缩功能

  1. //无插件压缩WordPress前端代码
  2. function wp_compress_html(){
  3. function wp_compress_html_main ($buffer){
  4. $initial=strlen($buffer);
  5. $buffer=explode("<!--wp-compress-html-->", $buffer);
  6. $count=count ($buffer);
  7. for ($i = 0; $i <= $count; $i++){
  8. if (stristr($buffer[$i], '<!--wp-compress-html no compression-->')) {
  9. $buffer[$i]=(str_replace("<!--wp-compress-html no compression-->"" ", $buffer[$i]));
  10. else {
  11. $buffer[$i]=(str_replace("\t"" ", $buffer[$i]));
  12. $buffer[$i]=(str_replace("\n\n""\n", $buffer[$i]));
  13. $buffer[$i]=(str_replace("\n""", $buffer[$i]));
  14. $buffer[$i]=(str_replace("\r""", $buffer[$i]));
  15. while (stristr($buffer[$i], ' ')) {
  16. $buffer[$i]=(str_replace(" "" ", $buffer[$i]));
  17. }
  18. }
  19. $buffer_out.=$buffer[$i];
  20. }
  21. $final=strlen($buffer_out);
  22. $savings=($initial-$final)/$initial*100;
  23. $savings=round($savings, 2);
  24. $buffer_out.="\n<!--压缩前的大小: $initial bytes; 压缩后的大小: $final bytes; 节约:$savings% -->";
  25. return $buffer_out;
  26. }
  27. //WordPress后台不压缩
  28. if ( !is_admin() ) {
  29. ob_start("wp_compress_html_main");
  30. }
  31. }
  32. add_action('init', 'wp_compress_html');
  33. //当检测到文章内容中有代码标签时文章内容不会被压缩
  34. function unCompress($content) {
  35. if(preg_match_all('/(crayon-|<\/pre>)/i', $content, $matches)) {
  36. $content = '<!--wp-compress-html--><!--wp-compress-html no compression-->'.$content;
  37. $content.= '<!--wp-compress-html no compression--><!--wp-compress-html-->';
  38. }
  39. return $content;
  40. }
  41. add_filter( "the_content""unCompress");

将代码添加到当前主题的Functions.php文件中。

第二、不需要进行压缩的代码需要特别备注出来

  1. <!--wp-compress-html--><!--wp-compress-html no compression-->
  2. 如果不希望被压缩的代码填写到这个里
  3. <!--wp-compress-html no compression--><!--wp-compress-html-->

这个功能就是保护我们容易出错的代码,提供的避免问题部分出现的解决方案。

PS:知更鸟begin主题的html代码压缩则需要以下代码,否则压缩会出错

  1. //压缩html代码 
  2. function wp_compress_html(){
  3. function wp_compress_html_main ($buffer){
  4. $initial=strlen($buffer);
  5. $buffer=explode("<!--wp-compress-html-->", $buffer);
  6. $count=count ($buffer);
  7. for ($i = 0; $i <= $count; $i++){
  8. if (stristr($buffer[$i], '<!--wp-compress-html no compression-->')) {
  9. $buffer[$i]=(str_replace("<!--wp-compress-html no compression-->"" ", $buffer[$i]));
  10. else {
  11. $buffer[$i]=(str_replace("\t"" ", $buffer[$i]));
  12. $buffer[$i]=(str_replace("\n\n""\n", $buffer[$i]));
  13. $buffer[$i]=(str_replace("\n""", $buffer[$i]));
  14. $buffer[$i]=(str_replace("\r""", $buffer[$i]));
  15. while (stristr($buffer[$i], '  ')) {
  16. $buffer[$i]=(str_replace("  "" ", $buffer[$i]));
  17. }
  18. }
  19. $buffer_out.=$buffer[$i];
  20. }
  21. $final=strlen($buffer_out);
  22. $savings=($initial-$final)/$initial*100;
  23. $savings=round($savings, 2);
  24. $buffer_out.="\n<!--压缩前的大小: $initial bytes; 压缩后的大小: $final bytes; 节约:$savings% -->";
  25. return $buffer_out;
  26. }
  27. if ( !is_admin() ) {
  28. ob_start("wp_compress_html_main");
  29. }
  30. }
  31. add_action('init', 'wp_compress_html');

目前此代码在知更鸟主题Begin主题亲测成功

  • 我的微信
  • 技术咨询
  • weinxin
  • 微信公众号
  • 营销技巧分享
  • weinxin
马找钱

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: