易于閱讀的前端代碼對(duì)開(kāi)發(fā)而言是無(wú)比重要的,但對(duì)于瀏覽器來(lái)說(shuō)就顯得無(wú)比雞肋了,畢竟瀏覽器不是像人眼一樣看代碼,過(guò)多的換行和空格,對(duì)前臺(tái)加載是有一定影響的,對(duì)使用大帶寬高配置服務(wù)器的網(wǎng)站,這么點(diǎn)影響可能不算什么事,畢竟氪金可以解決一切,但對(duì)于我們這種使用小水管學(xué)生機(jī)的小站來(lái)說(shuō),可以優(yōu)化的地方還是要堅(jiān)持去優(yōu)化的,畢竟誰(shuí)都不想訪問(wèn)一個(gè)慢悠悠的網(wǎng)站,那么這里我就向大家分享下,如何通過(guò)使用純代碼來(lái)對(duì)WordPress前端Html進(jìn)行壓縮,以達(dá)到給前臺(tái)訪問(wèn)加速的目的。
首先將以下代碼放入WordPress主題目錄里的functions.php文件的最后一個(gè) ?> 之前。
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; 節(jié)約:$savings% -->";
return $buffer_out;
}
ob_start("wp_compress_html_main");
}
add_action('get_header', 'wp_compress_html');
加入以上代碼后,打開(kāi)網(wǎng)站前臺(tái),查看下源代碼,看看最后一行是不是多了一個(gè)“壓縮前的大小: xxx bytes; 壓縮后的大小: xxx bytes; 節(jié)約:xxx%”的注釋,如果有則說(shuō)明生效了。
有些特別的網(wǎng)站,可能會(huì)存在部分js代碼被壓縮后無(wú)法正常運(yùn)行,那么可以使用以下代碼解決,把代碼放入指定的標(biāo)簽就不會(huì)被壓縮。
<!--wp-compress-html--><!--wp-compress-html no compression-->
此處代碼不會(huì)被壓縮,主要是避免壓縮帶來(lái)的錯(cuò)誤,請(qǐng)把不想被壓縮的代碼放入這里
<!--wp-compress-html no compression--><!--wp-compress-html-->
上面的代碼不是放入functions.php文件哈,需要在主題代碼中有js的地方放入。
還有我們的文章中有時(shí)候也需要插入代碼,比如我的網(wǎng)站,在這一篇文章中我就已經(jīng)插入幾段代碼了,如果文章中插入的代碼也被壓縮,是很影響用戶在前臺(tái)的閱讀體驗(yàn)的,所有我們也要進(jìn)行一下處理,同樣將一下代碼放入functions.php文件的最后一個(gè)?>中。
function unCompress($content) {
if(preg_match_all('/(crayon-|<\/pre>)/i', $content, $matches)) {
$content = '<!--wp-compress-html--><!--wp-compress-html no compression-->'.$content;
$content.= '<!--wp-compress-html no compression--><!--wp-compress-html-->';
}
return $content;
}
add_filter( "the_content", "unCompress");
至此,在訪問(wèn)下網(wǎng)站檢查下,看看是否正常且Html代碼被成功壓縮。
訪問(wèn)我的獨(dú)立網(wǎng)站語(yǔ)幕,查看源代碼即可看到效果。