2017-10-10 123 views
0

任務: 允許CMS用戶更改將帖子分享到Twitter時使用的圖像。 Yoast在創建Twitter卡片時使用精選圖片。如何在WordPress主題中正確地擴展Yoast的WPSEO_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

回答

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; 
}); 

線或許應該爲你工作,如果我理解正確的你。