如何删除源码中的html评论?

时间:2018-01-24 作者:ნიკა ხაჩიძე

是否有任何简单的方法可以删除所有html注释,如<!-- wp_head()--> 从每个页面和帖子的来源?可能使用函数。php?没有插件的简单方法吗?

2 个回复
SO网友:Nathan Johnson

下面是使用输出缓冲和preg_replace. 在WordPress开始输出HTML以启动缓冲区之前,我们先进行连接。然后,我们在WordPress停止输出HTML后进行连接,以获取缓冲区并从内容中删除HTML注释标记。

理想情况下,此代码应该位于它自己的插件中。但它可能在你的功能中。如果您真的反对添加更多插件,请使用php。

namespace StackExchange\\WordPress;

//* Start output buffering
function startOutputBuffer() {
  ob_start();
}

//* Print the output buffer
function stopOutputBuffer() {
  $html = ob_get_clean();
  echo strip_html_comments( $html );
}

//* See note for attribution of this code
function strip_html_comments( string $html ) : string {
  return preg_replace(\'/<!--(.*)-->/Uis\', \'\', $html);
}

//* Add action before WordPress starts outputting content to start buffer
add_action( \'wp\', __NAMESPACE__ . \'\\startOutputBuffer\' );

//* Add action after WordPress stops outputting content to stop buffer
add_action( \'shutdown\', __NAMESPACE__ . \'\\stopOutputBuffer\' );
注意:此StackOverflow中的Regex答案为Benoit Villière.

SO网友:Purvik Dhorajiya

以下WordPress操作能够从所有HTML注释中筛选代码。将PHP代码放入functions.php WordPress主题目录中的文件。

function callback($buffer) {
    $buffer = preg_replace(\'/<!--(.|s)*?-->/\', \'\', $buffer);
    return $buffer;
}
function buffer_start() {
    ob_start("callback");
}
function buffer_end() {
    ob_end_flush();
}
add_action(\'get_header\', \'buffer_start\');
add_action(\'wp_footer\', \'buffer_end\');

结束

相关推荐

WordPress如何使用其PHP脚本重写URL

我的问题是WordPress 重定向url,即使在httpd. httpd 不支持htaccess。如果开发人员试图重写URL,他必须在httpd中完成。conf文件。但是WordPress 如何在httpd中重写URL?如果有人有想法,请回答。