web-dev-qa-db-ja.com

テーマのfunctions.php(オーバーライドプラグイン関数)によってWPML Generator Meta Tagを削除する方法?

テーマの<meta name="generator" content="WPML ver:2.8.1 stt:3,1;0" />の助けを借りて、プラグイン _ wpml _<head>内の次のfunction.phpタグを出力しないようにする方法を見つけることを私は一生懸命試みました:

255行目からsitepress.class.phpに呼び出されています。

if ( !is_admin() ) {
    add_action( 'wp_head', array( $this, 'meta_generator_tag' ) );
}

この質問は WPML forum で一度質問されたことがあります。私はもう試した:

/* ::: Disable WPML Meta Generator Tag ::: */
if ( ! is_admin() ) {
    remove_action( 'wp_head', 'meta_generator_tag', 20 );
}
add_filter( 'meta_generator_tag', 'theme_generator_tag' );

function theme_generator_tag() {
    return false;
}

- 成功せず

3
Volker E.

このクラスのインスタンスはWPMLによってグローバルにされるので、これはうまくいくはずです。

if ( ! empty ( $GLOBALS['sitepress'] ) ) {
    add_action( 'wp_head', function()
    {
        remove_action(
            current_filter(),
            array ( $GLOBALS['sitepress'], 'meta_generator_tag' )
        );
    },
    0
    );
}
9
fuxia

これを試してください(remove_action()が違うことに注意してください:

if(!is_admin()){
    remove_action( 'wp_head', array($sitepress, 'meta_generator_tag') );
}
add_filter( 'meta_generator_tag', 'theme_generator_tag' );

function theme_generator_tag() {
    return false;
}

これはバージョン2.0.4.1以前では動作しましたが、新しいバージョンではテストされていません。

0
Max Yudin