純代碼壓縮WordPress前端Html

易于閱讀的前端代碼對(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ǔ)幕,查看源代碼即可看到效果。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容