【问题标题】:og:image being ignored when image URL is generated dynamically by php当图像 URL 由 php 动态生成时,og:图像被忽略
【发布时间】:2018-09-19 20:38:28
【问题描述】:

我有一个网页(在 Wordpress 下),我想根据查询字符串参数在 Facebook 帖子中显示不同的预览图像。

为此,在我的<head> 标签内,我有:

<?php 
    $image = wp_get_attachment_image_src( get_post_thumbnail_id( $_GET['lbcid'] ), 'single-post-thumbnail' ); 
?>

<meta property="og:url"                content="http://uat1.one-pager.sugarloafculinary.com/?lbcid=6957" />
<meta property="og:type"               content="article" />
<meta property="og:title"              content="Test Title" />
<meta property="og:description"        content="Description Here" />
<meta property="og:image"              content="<?php echo $image[0] ?>" />

$image[0] 输出一个有效的 URL,但是当 PHP 动态输出 content 属性的值时,Facebook 似乎完全忽略了 &lt;meta&gt; 标记。相反,它会选择页面上符合要求的第一张图片。我已经进入 FB 调试工具并重新抓取 - 这没有效果(在这个问题上)。

当我硬编码content 属性的值时,它会按预期显示。例如:

<meta property="og:image" content="http://uat1.one-pager.sugarloafculinary.com/wp-content/uploads/2018/07/blog_bulgar-pudding.jpg" />

您可以在http://uat1.one-pager.sugarloafculinary.com/?lbcid=6957 看到这一点。如果您查看源代码,您会看到&lt;meta&gt; 标记中的图片有一个有效(动态生成的)URL,但是如果您在FB Sharing Debugger 中测试页面,您会看到指定的图片不显示。

任何人都可以看到我的代码中的任何错误吗?有什么技巧可以让它工作吗?它可能是一个 Wordpress 的东西吗? (我没有在 WP 之外测试过)。


编辑:
请参阅下面接受的答案。上面 URL 处的代码已被修改以解决问题,因此它们将不再说明问题。简单的解决方案:似乎 FB 抓取器在 og:image 的第一个实例处停止,其中我的是第二个,因此被忽略了。

【问题讨论】:

    标签: php wordpress facebook-opengraph


    【解决方案1】:

    使用 facebook 调试器https://developers.facebook.com/tools/debug 似乎生成成功,facebook 可以读取它

    <meta property="og:image" content="http://uat1.one-pager.sugarloafculinary.com/wp-content/uploads/2018/06/logo_horz1-e1530285280453.png" />
    <!--this image is less than 200*200px -->
    

    调试器告诉的错误是图像小于 200px * 200px 如果您使用更大的图像可以解决问题

    编辑:修改代码后,我发现很多生成 og:image 代码

    FB 取第一个并忽略其余的。第一个og:image 太小了 发生错误

    修改你的插件和主题以消除不需要的og:image

    【讨论】:

    • 那是 Facebook 选择用作预览的徽标图像,因为它忽略了我的 &lt;meta property="og:image...&gt; 标签。看源码的话,正确的图片网址是uat1.one-pager.sugarloafculinary.com/wp-content/uploads/2018/07/…
    • 我找到了 看看你的来源。许多og:image 在您的页面上 FB 采用第一个很小的并忽略其余部分 修改您的插件和主题以消除不需要的og:image
    • @Daveh0 我编辑了适合解决方案的答案
    猜你喜欢
    • 2012-11-24
    • 2011-12-21
    • 1970-01-01
    • 2011-01-03
    • 2013-03-27
    • 1970-01-01
    • 2014-10-24
    • 2016-08-09
    相关资源
    最近更新 更多