将Facebook评论系统添加到Squarespace网站-所有评论结束在每个网页上


Adding Facebook Commenting System to Squarespace Website - All Comments ending up on every webpage

我试图通过代码注入将Facebook评论系统添加到Squarespace网站。问题是,Facebook希望在其代码中的URL地址,我只知道如何应用静态URL(最终结果是网站上的每条评论都显示在每个博客文章的评论部分)

我需要帮助,试图找出如何我可以动态地把单个网页的url拉到下面的代码data-href:

<div class="fb-comments" data-href="http://www.mywebsite.com/blog" data-numposts="5"></div>

我相信Squarespace使用某种形式的JSON(见开发网站:http://developers.squarespace.com/quick-reference/)

这篇文章中提供的解决方案似乎都不起作用:Facebook评论插件-每个页面都有相同的评论

谢谢你的帮助!

我做了什么:

Pages > Blog > Settings > Blog Post Code Injection中,增加:

<div class="fb-comments" data-href="{permalink}" data-numposts="5"></div>

{permalink}自动获取博客文章的永久链接。

这里值得注意的是,facebook评论不仅会显示在您的博客帖子页面上,而且还会显示在博客列表中每个博客帖子的下面。我只想让facebook评论显示在博客页面上,而不是在博客列表主页上,为了防止facebook评论显示在博客列表主页上,我添加了css:

.blog-list .fb-comments { display: none; }

我能够看到博客列表和博客详细页面的区别在于父元素存在.blog-list.blog-page类,所以上面的css只会隐藏.blog-list中的注释。

太棒了!我现在已经把它全部启动并运行了!!所以兴奋。

关于这个问题,我将为其他人添加的唯一一件事是,您还需要添加一些站点范围的代码。

设置>高级>代码注入>头

<!--FACEBOOK COMMENT SYSTEM-->
<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/sdk.js#xfbml=1&version=v2.8";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

另外,你需要关闭内置的Squarespace注释,这样你就不会在你的页脚上显示它们。