使用WordPress SEO时未显示OpenGraph描述(Yoast)

时间:2013-05-29 作者:pixelkicks

几天前我安装了WordPress SEO,并勾选了Open Graph标签,除了页面描述之外,它们都显示得很好。这是否应该出现,我说的是否正确,它将自动取自前几段?

现在我理解了没有自动生成元描述的原因,但现在当我们在Google+上发布文章时,只有页面标题被删除了,所以帖子看起来有点空白。

是否有办法让opengraph描述标记正常工作?

1 个回复
最合适的回答,由SO网友:Sven 整理而成

好的,现在我试着回答你的问题,但首先引用Yoast SEO Guide:

一些插件,尤其是多合一SEO插件,使用所谓的“自动描述”。默认情况下,他们使用帖子的第一句话来填充元描述。这不是很聪明。第一句话可能是一个介绍性的句子,与主题几乎没有任何关系。

因此,唯一写得好的描述是手写的,如果你想自动生成元描述,你最好不要做任何事情,让搜索引擎控制代码段……如果你不使用元描述,搜索引擎会在你的文档中找到搜索到的关键字,并自动在其周围选择一个字符串,这会在结果页面中显示一两个粗体字。

但也许您可以为元描述指定至少一个默认的自定义模板:转到SEO › Title & Metas 并设置元描述模板。你会发现很多变量,比如%%sitedesc%%%%excerpt%% 在“帮助”选项卡中。

enter image description here

据我所知,您的目标是在Google+和Facebook上显示描述。您还可以在Yoast WordPress SEO小部件中详细指定(推荐)这些描述:

enter image description here

更新:检查class-opengraph.php 中的文件frontend 插件的文件夹。您需要的是以下内容:

if ( $ogdesc && $ogdesc != \'\' ) { // check if there is a custom description
    if ( $echo !== false )
        echo "<meta property=\'og:description\' content=\'" . esc_attr( $ogdesc ) . "\'/>\\n";
    else
        return $ogdesc;
} else { // take the excerpt as fallback description
    echo "<meta property=\'og:description\' content=\'" . esc_attr( strip_tags( get_the_excerpt() ) )  . "\'/>\\n";
}
更新2:只需在function.php (这样您就可以更新插件):

function add_yoast_opengraph_description( $str ) {
    if ( $str == \'\' )
        return strip_tags( get_the_excerpt() );

    return $str;
}
add_filter( \'wpseo_opengraph_desc\', \'add_yoast_opengraph_description\' );
仅供参考:我注意到,在社交网络中出现元描述(有时)需要一些时间。

结束