问题描述

我有一个博客有一些帖子,每个帖子都有一个嵌入式的 Facebook like button 。按下该按钮可打开一个对话框,以便我的访问者可以在 Facebook 上分享一则评论。

然而,当分享时,Facebook 选择的图像是通用邮件图标,而不是邮件缩略图。

如何控制共享时使用的图像?

最佳解决方案

用于共享的映像取自您网站头文件中的一大堆代码,如下所示:

<link rel="image_src" href="path/to/theme/screenshot.png" />

通常它链接到主题中您网站的屏幕截图。如果你从文件的头文件中删除了代码,并在 single.php 中将它放在循环中,并将你的 post thumbnail 图像称为 href 元素,我相信它会工作。所以它看起来像:

<link rel="image_src" href="<?php the_post_thumbnail(); ?>" />

这意味着如果您在列出多个帖子的页面上有按钮,则可能不会有图像。如果您包含一些仅在 single.php 上删除的条件代码,那么在任何具有多个帖子和类似按钮的页面上,您将拥有正常的图像,并且在使用 single.php 模板时使用该缩略图。所以标题代码是:

<?php if ( is_single() ) { /* do nothing on single pages */ } else { ?>
<link rel="image_src" href="path/to/theme/screenshot.png" />
<?php } ?>

那么你仍然使用代码将 post thumbnail 包含在 single.php 中。

次佳解决方案

Facebook 现在使用开放式协议。您可以使用以下方法添加图像:

<meta property="og:image" content="http://YOUR_IMAGE_URL" />

将此行添加到页眉中。

或者,您可以使用我的插件自动执行此操作。

它只是做这个工作,不需要设置。

http://shailan.com/wordpress/plugins/facebook-meta-tags-plugin/

第三种解决方案

您需要使用 Facebook Open Graph Protocol 。我不知道为什么接受的答案不是许多 OG 中的一个:相关的答案 (我已投票),但它是错误的。

http://developers.facebook.com/docs/opengraph/

您可以自定义许多内容,包括标题,图像,描述,类别,最后更新等… 如果您使用 Open Graph 。如果您使用这些其他 half-solutions,您将全部丢失。

如果我没有遵循 OG 协议,我所做的所有的 FB 工作,我会被解雇。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。