任务: 允许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
答案 0 :(得分:1)
我认为向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;
});
如果我理解正确的话,应该适合你。