自动Opengraph图像

时间:2015-06-08 21:21:00

标签: html facebook facebook-opengraph opengraph

在Facebook或其他社交网络上分享页面时:

  1. 如果存在<meta property="og:image" content="http://url.to/image.jpg" />,则用于生成缩略图。没关系。

  2. 如果<meta property="og:image">不存在但页面上有图像,则HTML页面上显示的第一个图像将用作缩略图。这也很好。

  3. 如果<meta property="og:image">不存在,页面上没有图片,则表示没有缩略图。

  4. 如何使用<meta property="og:image">提供一个默认缩略图图片,当且仅当我们遇到#3时才会使用

    即。 :如果页面上没有图像,则此默认图像将仅使用 (如果有图像,则将使用此图像!)

    更一般地说,有没有办法告诉:

    “如果没有og:image,请将页面呈现用作缩略图(就像众所周知的http://netrenderer.com/)”

    我想要实现的目标:始终拥有缩略图,无论页面上是否有图像。

2 个答案:

答案 0 :(得分:2)

据我了解,如果页面上没有可供选择的图片,您希望提供一个后备og:image-tag。

我看到两个通用解决方案

  • 之后使用JavaScript检查页面并附加回退og:image-tag如果没有图像(可能不够可靠)
  • 在后端分析器(PHP控制器)中预先检查您的内容,并在必要时使用og:image-tag传送响应

我建议在后端执行此操作。

假设您有一个单文件PHP控制器,您可以将逻辑,数据和视图混合在一起...... 我们假设您将所有内容存储在变量中,可能称为 $ pagecontent

如果此变量将所有即将发布的内容保存为字符串,您可以在html-head中执行以下操作:

<head>
  <!-- other code -->
  <?php 
    if (strpos($pagecontent, '<img ') === false) {
      echo '<meta property="og:image" content="http://url.to/fallback-image.jpg" />';
    }
  ?>
</head>

我希望这会有所帮助。

答案 1 :(得分:1)

如果您希望始终根据您的选择提供缩略图,则需要提供默认图像:

<meta property="og:image" content="http://YOUR_DOMAIN.COM/YOUR_DEFAULT_image.jpg" />
否则Facebook将根据自己的决定添加或忽略图像