我在寻找解决方案,以删除Layer Slider的meta generator。在我查看的少数几个网站中,并没有找到太多帮助,它们都分享相同的信息,只涉及WordPress生成器或像WooCommerce这样的流行插件。
这里的问题是每个插件都会有自己的钩子名称和命名约定,因此学习或知道它们几乎是不可能的。我认为最简单的方法是使用纯PHP和preg_replace。
在您的主题的functions.php中放入下面的代码,经过测试,已在WordPress 4.7.2中起作用。
ini_set('output_buffering', 'on');
function remove_meta_generators($html) {
$pattern = '/<meta name(.*)=(.*)"generator"(.*)>/i';
$html = preg_replace($pattern, '', $html);
return $html;
}
function clean_meta_generators($html) {
ob_start('remove_meta_generators');
}
add_action('get_header', 'clean_meta_generators', 100);
add_action('wp_footer', function(){ ob_end_flush(); }, 100);
我正在使用正则表达式来捕获 meta
标签。它涵盖了他们是否在等号之间添加空格的情况。使用 ob_start
来覆盖整个文档。所以我们从头到尾添加 preg_replace
。在PHP手册中了解如何使用ob_start
,也有时WordPress编码手册会明确指出应该使用ob_start
。
如果您发现这对您有用,请点赞,以便下一个寻找的人可以找到覆盖所有元生成器的工作解决方案。我认为这些插件和平台开发者将元生成器版本号放入代码中是不好的安全性做法。特别是随着漏洞不断被发现。
我还在WordPress存储库上添加了一个执行此操作的插件。
删除Meta Generators