如何在Wordpress博客页面中为每个Facebook设置图像,描述和标题?

时间:2011-09-19 21:24:44

标签: facebook wordpress facebook-like meta-tags

  

可能重复:
  How does Facebook Sharer select Images?

因此,当用户点击主博客页面上的某个帖子时,我想为每个帖子设置不同的图像,标题和说明。这与Mashable和Techcrunch拥有它的方式相同。到目前为止,我只能找到包括在头部添加元标记的解决方案。但问题是主页有很多帖子,每个帖子都有不同的标题,图片等。所以我这样做,有人有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我猜你必须为每个人手动设置这样的东西。

http://developers.facebook.com/docs/reference/javascript/FB.ui/

并为每个项目执行类似

的操作
<div id="post-id">
    <h2>title</h2>
    <img class="thumb" src="src.jpg">
    <p class="excerpt">the description</p>
    <a class="permalink" href="permalink">Read more</a>
    <a href="#" class="share">
</div>

Jquery的

$(".share").click( function(e) {
    e.preventDefault();

    FB.ui(
      {
        method: 'feed',
        name: $(this).parent().child('h2').html(),
        link: $(this).parent().child('.permalink').attr('href'),
        picture: $(this).parent().child('img').html(),
        caption: 'Reference Documentation',
        description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
      },
      function(response) {
        if (response && response.post_id) {
          alert('Post was published.');
        } else {
          alert('Post was not published.');
        }
      }
    );      
});

现在,这个jQuery不对(我很确定),你需要拥有Facebook应用程序以及所有这些设置。但我认为这种东西会很好用。

或者找一个插件,比如addthis.com或facebook“like”插件可能会在插入固定链接时起作用。 http://developers.facebook.com/docs/reference/plugins/like/

答案 1 :(得分:0)

您可以编写一个函数来获取帖子图片,标题和描述,并将其动态插入到Section:

function insert_fb_in_head() 
{

        if (is_singular()) { 
            $image = get_the_post_thumbnail(); 
            $title = get_the_title(); 
            $type = 'article';
        }
        else { 
            $image = 'standard_image.jpg';
            $title = bloginfo('name');
            $type = 'blog';
        }
        echo '<meta property="og:title" content="'.$title.'"/>'; 
        echo '<meta property="og:type" content="'.$type.'"/>';
        echo '<meta property="og:url" content="'.get_permalink().'"/>'; 
        echo '<meta property="og:site_name" content="'.$title.'"/>'; 
        echo '<meta property="og:email" content="yours@example.com"/>';
        echo '<meta property="og:phone_number" content="000 555 888"/>'; 
        echo '<meta property="og:description" content="'.meta_description().'"/>';
        echo '<meta property="og:image" content="' . $image . '"/>'; 
}
add_action( 'wp_head', 'insert_fb_in_head', 5 );

...为了获得描述,我在帖子中添加了一个“自定义字段”,并在此处使用此函数进行阅读:

function meta_description() 
{
    $description = "";
    if ( is_single() || is_page() ) 
    {
        $post_id = get_the_ID();
        $description = get_post_meta($post_id, 'description', true);
    } 
    else { $description = get_bloginfo('name')." - ".get_bloginfo('description'); }
    return $description;
}

这里可能有更好的方法来定义标题,图像和描述,但这让我知道如何做到这一点。至少我对这种方式很满意。

PS:只是澄清一下,根据需要更改变量并将其放在模板的functions.php文件中,这就是它。只要有人点击您希望已经插入博客中的“赞”按钮,标题,图片和说明就会显示在他/她的脸书墙上!