WordPress - 如何删除元生成器标签?

Joh*_*ohn 16 wordpress meta-tags

我有这些标签:

<meta name="generator" content="Woo Framework Version 3.1.1" />
<meta name="generator" content="WordPress 3.5" />
<meta name="generator" content="Canvas 3.0" />
Run Code Online (Sandbox Code Playgroud)

我理解删除我添加的WordPress版本标记:

remove_action( 'wp_head', 'wp_generator' ); // goes into functions.php
Run Code Online (Sandbox Code Playgroud)

但是如何删除主题meta标签?

lmm*_*des 25

如果您只想删除meta="generator"将此行添加到functions.php中.

remove_action( 'wp_head', 'wp_generator' );
Run Code Online (Sandbox Code Playgroud)

  • 这只会删除 WordPress 版本的行。 (2认同)

web*_*aut 14

正在寻找一个删除Layer Slider元生成器的解决方案,在我看过的任何一些网站上找不到太多帮助,它们都共享相同的信息,这些信息仅适用于WordPress生成器或流行的插件,如WooCommerce.

这里的问题是每个插件都有它自己的钩子名称和命名约定,所以学习或了解它们几乎是不可能的.我认为最简单的方法是使用PHP preg_replace.

已在WordPress 4.7.2中测试过的工作代码.你的主题的functions.php里面放在这段代码中它应该可以工作.

//Remove All Meta Generators
ini_set('output_buffering', 'on'); // turns on output_buffering
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);
Run Code Online (Sandbox Code Playgroud)

我正在使用正则表达式来捕获meta标记.它涵盖了它们是否在等号之间放置空格.利用ob_start覆盖整个文件.所以我们将preg_replace标题的起点一直添加到页脚.看看PHP手册ob_start中的工作原理,有时候WordPress codex会说它应该使用的状态.ob_start

如果您发现这个有用,请添加一个竖起大拇指,以便下一个看起来可以登陆覆盖所有元生成器的工作解决方案.我觉得这些插件和平台开发人员在代码中放置元生成器版本号是不好的安全措施.特别是随着不断发现的漏洞被发现.

我还添加了一个插件,可以在WordPress存储库中执行此操作.

删除Meta生成器


Iva*_*nRF 5

在functions.php文件的底部添加以下php片段:

// hide the meta tag generator from head and rss
function disable_version() {
   return '';
}
add_filter('the_generator','disable_version');
remove_action('wp_head', 'wp_generator');
Run Code Online (Sandbox Code Playgroud)


KJY*_*葉家仁 5

我最近遇到了这个问题,出于安全和垃圾邮件的原因,我不得不为客户端删除元标记。我能够删除 Wordpress 的元生成器,但主题使用 woo 框架,因此使用

remove_action('wp_head', 'wp_generator');
Run Code Online (Sandbox Code Playgroud)

是不够的。去除

<meta name="generator" content="Woo Framework Version x.x.x" />
Run Code Online (Sandbox Code Playgroud)

以及您的主题生成的任何元生成器标签,只需将此行添加到模板的functions.php 的末尾

// remove the unwanted <meta> links
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'woo_version'); 
Run Code Online (Sandbox Code Playgroud)

这在 Woo Framework 5.5.5 上对我有用。要找到初始化生成器元标记的位置,请查找admin-init.php模板和woo_version()函数的文件,并且woo_version_init()函数应该在那里。通常它位于主题源中的包含文件夹下。


use*_*010 3

我找到了一个 插件的源代码,其中指出它删除了自动生成的 WP 元标记。你可以尝试一下。

  • 插件名称:删除 WP 元数据
  • 插件 URI: http: //leekelleher.com/
  • 描述:此插件从每个网页中删除自动生成的 WP 元标记。
  • 作者:李·凯莱赫