前面我介绍了可以使用 Minify 这个工具和其 WordPress 插件对 CSS 和 JS 进行最小化压缩和合并,但是对于服务器输出的 HTML 代码,是否也可以进行压缩呢?

下面就是一个对 HTML 进行压缩的函数:

function wpjam_minify_html($html) {

    $search = array(
        '/>[^S ]+/s',  // 删除标签后面空格
        '/[^S ]+</s',  // 删除标签前面的空格
        '/(s)+/s'       // 将多个空格合并成一个
    );

    $replace = array(
        '>',
        '<',
        '\1'
    );

    $html = preg_replace($search, $replace, $html);

    return $html;
}

  
对于 WordPress 博客来说,将上面的函数和下面的代码复制到当前主题的 functions.php 文件中,就可以实现输出页面 HTML 代码的压缩:

if(!is_admin()){
	add_action("wp_loaded", 'wp_loaded_minify_html');
	function wp_loaded_minify_html(){
		ob_start('wpjam_minify_html');
	}
}