Facebook 动态 og:image 使用 PHP

Facebook dynamic og:image using PHP

我有一个 PHP 网站需要多个 Facebook 共享图像 (og:image),我正在解析 URL 并将相关文件名回显到 og:image元标记。

查看页面源显示它有正确的图像,但 Facebook 调试器仍然抓取主要(主页)og:image。

<meta property="og:image" content="site.net/img/meta/<?php echo $og_image ?>.jpg">

有没有办法让共享 og:image 相对于完整 URL 发生变化?

即我分享 site.net/home,Facebook 抓取一张图片,而 site.net/about 会分享另一张 og:image。

是的,您可以在每个页面上有一个唯一的 og:image(以及任何其他 Open Graph 标签)——只需在这些页面上输出不同的 OG 标签。

这些不采用的最常见原因是 og:url 页面指向其他地方(例如 example.com 处的根目录),因为 Facebook 会认为 "canonical" URL 并从 那里 而不是当前 URL 获取 OG 标签。您可以为每个页面设置一个唯一的 og:url,或者您可以完全不使用它 - 如果它丢失,Facebook 将使用当前的 URL 作为后备。