2017-10-10 22 views
0

タスク: は、CMSのユーザーは、Twitterへの投稿を共有するときに使用される画像を変更できるようにします。 Yoastは、Twitterカードを作成するときにおすすめ画像を使用します。適切にワードプレスのテーマでYoastのWPSEO_Twitterクラスを拡張する方法

アプローチ: はポストにカスタムメタフィールドを追加します。 WPSEO_Twitterクラス、またはprivate関数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が動作していないとさえずりメタコードが重複しています。プラグインのクラスと拡張クラスの両方が実行されています。

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

答えて

0

私はあなたが望むものにイメージを変えるwpseo_twitter_imageにフィルタを追加する方が簡単だと思います。私が正しくあなたを理解している場合

add_filter("wpseo_twitter_image", function($img) { 
    if($myimg = get_post_meta(get_the_ID(), "custom-twitter-image", true)) { 
     return $myimg; 
    } 
    return $img; 
}); 

の線に沿って

何かはおそらく、あなたのために働く必要があります。

関連する問題