在wordpress中插入og:image

时间:2015-02-20 22:01:52

标签: wordpress facebook facebook-opengraph opengraph meta-tags

我为facebook的og:image标记提供了以下挂钩。

在我的模板文件中:

<?php do_action('wp_head', $mypost) ?>

在我的函数文件中:

add_action('wp_head', 'add_fb_og');
function add_fb_og($mypost) {
  if (isset($mypost["wpcf-bgleft"][0])) {
    echo '<meta property="og:image" content="'.$mypost["wpcf-bgleft"][0].'" />';
  }
}

我尝试做的是将自定义字段的背景图片传递给wp_head,以便输出<meta property="og:image" content="http://example.com/mybackgroundimage.jpg" />以供Facebook消费。

虽然输出在那里,但Facebook却没有拿起og:image标签 我在使用它的调试工具时收到警告:

  

&#39; og:image&#39;应明确提供属性,即使可以从其他标记推断出值。

我可以在源视图中看到og:image标记,因此我认为在文件到达模板文件中的do_action之前已对其进行了处理。

如何根据自定义字段插入og:image

如果重要的话,我也会使用WordPress SEO by Yoast插件。

2 个答案:

答案 0 :(得分:1)

好的,我发现了怎么做。

  1. 请勿在模板部分中致电do_action('wp_head')

  2. 在functions.php中,执行:

    add_action('wpseo_head', 'add_fb_og');
    function add_fb_og($mypost) {
      global $post;
    
      $mypost = get_post_custom($offid);
      if (isset($mypost["wpcf-bgleft"][0])) {
        echo '<meta property="og:image" content="'.$mypost["wpcf-bgleft"][0].'" />';
      }
    }
    
  3. 注意我使用Yoast SEO的钩子并拨打global $post来获取帖子数据,所以我不必传递任何参数。

答案 1 :(得分:0)

通过yoast的Wordpress SEO也使用facebook opengraphs。所以它可能是interfaring尝试禁用它。但是如果你能正确地看到标签放置在正确的位置。然后问题可能在另一端。