我用这段代码来缩小WordPress中的HTML输出。它在主页和帖子页面上工作得很完美,但是在管理部分它会引起很多问题。
function minify_html(){
ob_start('html_compress');
}
function html_compress($buffer){
$search = array(
'/\n/', // replace end of line by a space
'/\>[^\S ]+/s', // strip whitespaces after tags, except space
'/[^\S ]+\</s', // strip whitespaces before tags, except space
'/(\s)+/s', // shorten multiple whitespace sequences,
'~<!--//(.*?)-->~s' //html comments
);
$replace = array(
' ',
'>',
'<',
'\\1',
''
);
$buffer = preg_replace($search, $replace, $buffer);
return $buffer;
}
add_action('wp_loaded','minify_html');
使用'the_post'而不是'wp_loaded'只会缩小帖子,但我希望能够100%缩小主页和帖子页面,但在管理部分没有任何内容。我如何合并这些操作来管理它?
谢谢你,谢谢你
2条答案
按热度按时间blmhpbnm1#
不错的代码,排除管理员:
它工作得很好WP管理员!
z9ju0rcb2#
有一个故障排除案例,用preg_replace替换空格会导致UTF-8字符无效。(例如:
à
编码将失败并导致�
)。这是由于当前区域设置与定义的区域设置不匹配。我们可以使用/u
标志作为正确过滤UTF-8
字符的方法。在某些情况下,从内联
<script>
标记中删除新行和多个空格将导致脚本中断。隔离<script>
标记的内容将防止这种情况发生,这是通过将缓冲区拆分为一个数组来实现的,该数组由通过preg_split()
打开和关闭脚本标记来分隔。