17

我有这些标签:

<meta name="generator" content="Woo Framework Version 3.1.1" />
<meta name="generator" content="WordPress 3.5" />
<meta name="generator" content="Canvas 3.0" />

我了解删除我添加的 WordPress 版本标签:

remove_action( 'wp_head', 'wp_generator' ); // goes into functions.php

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

4

10 回答 10

28

如果您只想删除meta="generator"添加这一行到您的functions.php

remove_action( 'wp_head', 'wp_generator' );
于 2013-07-05T08:59:56.797 回答
17

正在寻找删除 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);

我正在使用正则表达式来捕获meta标签。它涵盖了他们是否在等号之间放置空格。用于ob_start覆盖整个文档。因此,我们将preg_replace页眉的开头一直添加到页脚。查看PHP 手册ob_start中的工作原理,也有时间WordPress codex确实声明它应该使用。ob_start

如果您觉得这很有用,请竖起大拇指,以便下一个寻找的人可以找到涵盖所有元生成器的有效解决方案。我觉得这些插件和平台开发人员将元生成器版本号放入代码中是不安全的。尤其是在不断发现不断演变的漏洞的情况下。

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

删除元生成器

于 2017-02-22T00:48:52.207 回答
5

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

remove_action('wp_head', 'wp_generator');

是不够的。去除

<meta name="generator" content="Woo Framework Version x.x.x" />

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

// remove the unwanted <meta> links
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'woo_version'); 

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

于 2015-03-06T17:54:20.950 回答
4

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');
于 2013-12-09T14:09:34.620 回答
3

我发现这个 插件的源代码声明它删除了自动生成的 WP 元标记。你可以试试。

  • 插件名称:删除 WP Meta
  • 插件 URI: http: //leekelleher.com/
  • 描述:此插件从每个网页中删除自动生成的 WP 元标记。
  • 作者:李凯莱赫
于 2013-05-02T12:55:27.467 回答
3

不!

如果它被硬编码到您的主题模板中(即在 header.php 中),那么您必须手动删除它!

否则,请使用此完整解决方案来删除所有版本标签:

// ============ removing inbuilt WP meta-tag ===========  http://stackoverflow.com/q/16335347/2377343  ========== //
  //if included in wp_head
    add_action( 'after_setup_theme', 'my_wp_version_remover' ); function my_wp_version_remover(){
        remove_action('wp_head', 'wp_generator'); 
    }
  //clean all responses from VERSION GENERATOR
    add_filter('the_generator',             'rm_generator_filter'); 
    add_filter('get_the_generator_html',    'rm_generator_filter');
    add_filter('get_the_generator_xhtml',   'rm_generator_filter');
    add_filter('get_the_generator_atom',    'rm_generator_filter');
    add_filter('get_the_generator_rss2',    'rm_generator_filter');
    add_filter('get_the_generator_comment', 'rm_generator_filter');
    add_filter('get_the_generator_export',  'rm_generator_filter');
    add_filter('wf_disable_generator_tags', 'rm_generator_filter');
                                    function rm_generator_filter() {return '';}
// ========================================================== //
于 2016-01-23T22:50:23.370 回答
1

下面的代码去掉了 Woo 框架中的所有生成器标签。我已经使用 Woo Framework 6.0.4 和主题 Canvas 5.8.3 对其进行了测试:

// Remove the WooThemes version from the html headers
function no_woo_version ()
{
   return true;
}
add_filter ('wf_disable_generator_tags', 'no_woo_version');
于 2014-09-12T12:42:36.047 回答
1

这是将删除 WP 元和版本删除的插件: https ://wordpress.org/plugins/wp-meta-and-version-remover/

于 2019-11-19T11:23:22.280 回答
1

这个是通过 Google 找到的站点工具包,但可以进行任何修改。感谢这篇文章和他的插件

add_action('get_header',function (){
    ob_start(function ($o) {
        return preg_replace('/\n?<.*?content="Site Kit by Google.*?>/mi','',$o);
    });
});
add_action('wp_head',function (){
    ob_end_flush();
   }, 992);
于 2021-02-02T13:19:46.690 回答
0

如果您制作了 ouw 自定义 WordPress 主题,元数据中的生成器将没有问题,就像我在 samll 示例中所做的那样。如果您不像您的某些自定义函数那样声明它,则不会有生成器。我尝试像这里一样控制我的主题的所有 JS 脚本和样式。如果我有,来自插件的样式,还需要一些工作。

但如果你使用免费主题,是的,100% 会有生成器。所以添加文件 Function.php 1http ://sierra-group.in.ua/start-legkogo-rezhima-preprocesornoj-sborki-vashih-fajlov-stilej-i-skriptov.html/#custom-register-styles-脚本

function disable_version() { return '';}
add_filter('the_generator','disable_version');
remove_action( 'wp_head', 'wp_generator');
remove_action('wp_head', 'woo_version'); 
function no_woo_version (){   return true;}
add_filter ('wf_disable_generator_tags', 'no_woo_version');
于 2019-01-10T10:12:12.467 回答