从Yoast SEO中检索一个值,以用于设置默认的Twitter卡片图像以实现覆盖

时间:2020-02-06 作者:Ryflex

所以Yoast SEO有一个问题,您无法定义全局默认的twitter卡图像。

因此,我希望两者都设置一个默认的twitter卡图像,但允许在特定页面上的覆盖实际工作。

我当前正在使用:

$default_opengraph = \'https://website.com/image.png\';
function default_opengraph() {
    global $default_opengraph; return $default_opengraph;
}
add_filter(\'wpseo_twitter_image\',\'default_opengraph\');
这允许我全局设置默认的twitter卡图像,但问题是:

它阻止特定页面的覆盖工作(Yoast SEO自定义/特色图像)

  • 需要手动定义
  • 任何能够帮助找到修复方法的人,YoastSEO本身都应该在插件中包含这一点,他们在WordPress论坛、github以及他们的网站上都有大量请求,他们已经请求了几年,但他们仍然没有添加它。。。

    希望有人能对此提供帮助,因为它对许多用户都非常适用和有用。

    谢谢

    2 个回复
    SO网友:Stefan Vetter

    下面是我如何修复它的。如果将此代码粘贴到主题函数中。php,如果没有为Twitter设置图像,它将使用为Facebook设置的图像,也将为Twitter设置图像。

    如果没有为Facebook和Twitter设置图像,则会返回到Yoast设置中的默认Facebook图像(遗憾的是,您无法在此处提供默认Twitter图像,因此我们将使用Facebook图像)。

      // Add Twitter image to every page /article if none is defined
    
    add_filter(\'wpseo_twitter_image\', \'change_twitter_image\');
    
    function change_twitter_image($image) {
    
        if (!$image) {
    
            global $post;
            
            if (!$image = get_post_meta($post->ID)["_yoast_wpseo_opengraph-image"][0]) {
                $image = get_option("wpseo_social")["og_default_image"];
            }
    
        }
     
        return $image; 
      
    }; 
    

    SO网友:Rup

    如果已经有图像集,则它是passed to the wpseo_twitter_image filter when it\'s called 作为参数:

    /**
     * Filter: \'wpseo_twitter_image\' - Allow changing the Twitter Card image.
     *
     * @api string $img Image URL string.
     */
    $img = apply_filters( \'wpseo_twitter_image\', $img );
    
    因此,您可以轻松修复过滤器,使其不会覆盖现有值,例如。

    $default_opengraph = \'https://website.com/image.png\';
    function default_opengraph( $img ) {
        if ( is_string( $img ) && ( $img !== \'\' ) ) {
            // We have a value set
            return $img;
        }
    
        // No image: return the default
        global $default_opengraph;
        return $default_opengraph;
    }
    add_filter( \'wpseo_twitter_image\',\'default_opengraph\' );
    
    然而,乍一看,有一个默认图像选项og\\u default\\u image,它被序列化为wp\\u options值wpseo\\u social。我不知道你是否/在哪里可以在管理网站上配置它。

    相关推荐

    如何通过IFTTT将WordPress自定义帖子类型发布到Twitter

    我有我的wordpress网站。它有一个普通的“post”和一个自定义的post类型“download”,我目前使用IFTTT(如果是这个,那么就是那个服务)将我的wordpress帖子发布到Twitter。IFTTT配方非常适合我的帖子,我一发布任何帖子就发推特。你可以查看我的网站https://milyin.com, 我的推特账号是https://twitter.com/milyincrealtors/问题是,这只适用于普通的wordpress帖子。我在IFTTT中搜索了包含自定义帖子类型的小程序,但