Nén code WordPress không cần plugin
Hiện nay có rất nhiều plugin tối ưu cho website nên có tích hợp sẵn chức năng nén html, css, js cho website của bạn nhưng nếu bạn không muốn dùng plugin thì có thể tiêu dùng code dưới đây để nén code đầu ra HTML của WordPress nhé.
Có thể nhiều người sẽ thắc mắc nếu dùng plugin nén rồi thì có cần code này để nén nữa hay không, mình xin trả lời là có, code này cho vào file functions.php nên chúng sẽ được nén trước, qua lớp plugin tối ưu hay plugin cache họ nén nữa hay không thì tuỳ nhưng cái gốc đã nén thì quá tốt.
Để nén code html trong WordPress bạn có thể tiêu dùng đoạn code phía dưới đây cho vào file functions.php
và lưu lại là xong.
File functions.php trong WordPress nằm ở đâu và có chức năng gì bạn có thể xem tại đây
class FLHM_HTML_Compression{protected $flhm_compress_css = true;protected $flhm_compress_js = true;protected $flhm_info_comment = true;protected $flhm_remove_comments = true;protected $html;public function __construct($html){if (!empty($html)){$this->flhm_parseHTML($html);}}public function __toString(){return $this->html;}protected function flhm_bottomComment($raw, $compressed){$raw = strlen($raw);$compressed = strlen($compressed);$savings = ($raw-$compressed) / $raw * 100;$savings = round($savings, 2);return '<!--HTML compressed, size saved '.$savings.'%. From '.$raw.' bytes, now '.$compressed.' bytes-->';}protected function flhm_minifyHTML($html){$pattern = '/<(?<script>script).*?</scripts*>|<(?<style>style).*?</styles*>|<!(?<comment>--).*?-->|<(?<tag>[/w.:-]*)(?:".*?"|'.*?'|[^'">]+)*>|(?<text>((<[^!/w.:-])?[^<]*)+)|/si';preg_match_all($pattern, $html, $matches, PREG_SET_ORDER);$overriding = false;$raw_tag = false;$html = '';foreach ($matches as $token){$tag = (isset($token['tag'])) ? strtolower($token['tag']) : null;$content = $token[0];if (is_null($tag)){if ( !empty($token['script']) ){$strip = $this->flhm_compress_js;}else if ( !empty($token['style']) ){$strip = $this->flhm_compress_css;}else if ($content == '<!--wp-html-compression no compression-->'){$overriding = !$overriding; continue;}else if ($this->flhm_remove_comments){if (!$overriding && $raw_tag != 'textarea'){$content = preg_replace('/<!--(?!s*(?:[if [^]]+]|<!|>))(?:(?!-->).)*-->/s', '', $content);}}}else{if ($tag == 'pre' || $tag == 'textarea'){$raw_tag = $tag;}else if ($tag == '/pre' || $tag == '/textarea'){$raw_tag = false;}else{if ($raw_tag || $overriding){$strip = false;}else{$strip = true; $content = preg_replace('/(s+)(w++(?<!baction|balt|bcontent|bsrc)="")/', '$1', $content); $content = str_replace(' />', '/>', $content);}}} if ($strip){$content = $this->flhm_removeWhiteSpace($content);}$html .= $content;} return $html;} public function flhm_parseHTML($html){$this->html = $this->flhm_minifyHTML($html);if ($this->flhm_info_comment){$this->html .= "n" . $this->flhm_bottomComment($html, $this->html);}}protected function flhm_removeWhiteSpace($str){$str = str_replace("t", ' ', $str);$str = str_replace("n", '', $str);$str = str_replace("r", '', $str);$str = str_replace("// The customizer requires postMessage and CORS (if the site is cross domain).",'',$str);while (stristr($str, ' ')){$str = str_replace(' ', ' ', $str);} return $str;}}function flhm_wp_html_compression_finish($html){return new FLHM_HTML_Compression($html);}function flhm_wp_html_compression_start(){ob_start('flhm_wp_html_compression_finish');}add_action('get_header', 'flhm_wp_html_compression_start');
Sau đó bạn có thể view-source sẽ thấy code được nén lại còn 1 dòng như này thôi.
0 nhận xét:
Post a Comment