0

タスク: CMS ユーザーが Twitter への投稿を共有するときに使用する画像を変更できるようにする。Yoast は、Twitter カードを作成する際にアイキャッチ画像を使用します。

アプローチ: 投稿にカスタム メタ フィールドを追加します。WPSEO_Twitter クラスまたはプライベート関数 output_metatag() のみを拡張します。カスタム メタ フィールドが空でない場合は、デフォルトの代わりにカスタム フィールドの値を使用します。

コード:

if (class_exists('WPSEO_Twitter')) :
    remove_action( 'wpseo_head', array( 'WPSEO_Twitter', 'get_instance' ), 40 );
    add_action( 'wpseo_head', array( 'EXAMPLE_WPSEO_Twitter', 'get_instance' ), 40 );

    class EXAMPLE_WPSEO_Twitter extends WPSEO_Twitter {
       // etc
     }
endif;

問題: remove_action が機能せず、Twitter メタ コードが複製されています。プラグインのクラスと私の拡張クラスの両方が実行されています。

リンク: https://github.com/Yoast/wordpress-seo/blob/trunk/frontend/class-twitter.php

4

1 に答える 1