因此,当用户点击主博客页面上的某个帖子时,我想为每个帖子设置不同的图像,标题和说明。这与Mashable和Techcrunch拥有它的方式相同。到目前为止,我只能找到包括在头部添加元标记的解决方案。但问题是主页有很多帖子,每个帖子都有不同的标题,图片等。所以我这样做,有人有什么想法吗?
答案 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文件中,这就是它。只要有人点击您希望已经插入博客中的“赞”按钮,标题,图片和说明就会显示在他/她的脸书墙上!