我们希望实现一个包含内容项列表的页面,显示每个项目的标题和摘录。我们希望每个内容项旁边都有一个Like按钮,单击该按钮时,“喜欢”单个项目,而不是索引页面。
我们已经看到这在其他地方实施(以前是Mashable.com,在他们的主页上),但是使用标准实现我们无法使其工作。有人有任何提示吗?
我们正在使用PHP / Symfony。
注意:我不是程序员所以这个问题不是用技术语言构建的 - 但是任何答案都会传递给能够理解它们的程序员。
答案 0 :(得分:9)
您只需在页面上的每个相似按钮上设置href属性即可。例如,
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<fb:like href="http://www.example.com/item1"></fb:like>
<fb:like href="http://www.example.com/item2"></fb:like>
<fb:like href="http://www.example.com/item3"></fb:like>
如果每个按钮都有自己的href,那么每个按钮都会独立运行。如果您不包含href,则类似按钮假定您喜欢当前正在查看的页面。
此外,您应该在您喜欢的每个网址上实施开放图形协议。我的意思是你喜欢按钮的href中的url,而不是像按钮一样的必然页面。你可以在这里阅读:http://developers.facebook.com/docs/opengraph
这很简单。您只需将元标记添加到页面标题中,如下所示:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:og="http://opengraphprotocol.org/schema/"
xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>The Rock (1996)</title>
<meta property="og:title" content="The Rock"/>
<meta property="og:type" content="movie"/>
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/"/>
<meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>
<meta property="og:site_name" content="IMDb"/>
<meta property="fb:admins" content="USER_ID"/>
<meta property="og:description"
content="A group of U.S. Marines, under command of
a renegade general, take over Alcatraz and
threaten San Francisco Bay with biological
weapons."/>
...
</head>
...
</html>
答案 1 :(得分:0)
在每个内容之后加上:
<div class="fb-like" data-href="unique_url_here_for_the_content" data-send="true" data-layout="button_count" data-width="100" data-show-faces="true"></div>
将“unique_url_here_for_the_content”替换为内容的实际网址
修改数据 - * atrribute请转到fb,如插件页面here
并且你需要在身体标签
之后使用它 <div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>