Yoast SEO插件打开图形添加meta标签以从作者页面获取阿凡达

时间:2018-08-04 作者:Adham Mohamed

我正在尝试创建一个新的og:当用户将其作者个人资料页面共享到Facebook时,为作者头像创建一个新的og:图像。

我是WordPress的新手,在搜索了6个多月后,我总是失败。

我的网站是多作者的,我需要为作者添加og:图像元标记。php“作者简介”,我被卡住了,我真的厌倦了搜索。

当我们的用户试图共享他的个人资料时。。头像没有出现!因为Facebook找不到作者avatar og:image!

我使用的插件:Yoast SEO, Simple Local Avatars, AddToAny Share Buttons.

我尝试使用wpseo\\u opengraph\\u图像过滤器,但不起作用。

这是我正在使用的代码:

function custom_author_og_image() {
    if ( is_author ( ) ) {
    $author = get_queried_object();
        $image_attributes = get_avatar_url( $author->user_email, \'full\' );
        if ( $image_attributes !== false ) {
            return $image_attributes[0];
        }
    }
}
add_filter(\'wpseo_opengraph_image\', \'custom_author_og_image\', 10, 0);

2 个回复
SO网友:Hồ Trọng Linh Ân

您是否尝试检查您的<head> 标签

或者您可以尝试增加过滤器挂钩的优先级。下面的示例使用优先级为99(几乎是最新)的过滤器。

add_filter(\'wpseo_opengraph_image\', \'custom_author_og_image\', 99);

SO网友:Adham Mohamed

最后,我找到了答案,我想与您分享,但我还有一个小问题。现在我可以得到作者头像,如果他至少有1篇帖子!!Facebook上有0条帖子的作者无法获取他的头像!!奇怪的事,我不知道怎么解决。

不管怎样,这就是我找到的代码。

add_action(\'wpseo_head\', \'add_fb_og\', 5);

function add_fb_og() {
        if ( is_author ( ) ) {
$my_custom_avatar = get_avatar(get_the_author_meta( \'ID\' ), 200 );
$document = new DOMDocument();
@$document->loadHTML($my_custom_avatar);
$nodes = $document->getElementsByTagName(\'img\');

    ?>
    <meta property="og:image" content="<?php echo $nodes->item(0)->getAttribute(\'src\'); ?>" />
    <?php
    }
}

结束

相关推荐

如何通过REST API传递Get_the_Author_Meta(‘User_Email’)?

在我的插件中,如果我在函数中硬编码电子邮件地址wp_mail() 或mail() 我可以使用我的表格:function email_form($ip_address, $agent, $referrer, $email, $name, $message) { $to = \"darthvader@wpse.com\"; $subject = \"Hard Coded\"; $email_body = \"IP