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

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

我正在尝试通过代码注入将 Facebook 评论系统添加到 Squarespace 网站。问题是,Facebook 想要在其代码中使用 URL 地址,而我只知道如何应用静态 url(最终结果是网站上的每条评论都出现在每个博客中 post的评论区)

我需要帮助来弄清楚如何将单个网页 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/

None post 中提供的解决方案似乎有效:Facebook comments plugin - same comments on every page

感谢您的帮助!

我做了什么:

Pages > Blog > Settings > Blog Post Code Injection中添加:

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

{permalink} 自动获取博客的固定链接 post。

这里值得注意的是,Facebook 评论不仅会显示在您的博客 post 页面上,还会显示在博客列表中每个博客 post 的下方。我只希望 facebook 评论显示在博客页面上,而不是博客列表主页上,以防止 facebook 评论显示在我添加的博客列表主页上 css:

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

我能够看到博客列表和博客详细信息页面之间的区别在于父元素存在 class .blog-list.blog-page 所以上面的 css只会隐藏 .blog-list.

中的评论

太棒了!我已经搞定了,运行 现在!!!太激动了

我要为遇到此问题的其他人添加的唯一一件事是您还需要添加一些 site-wide 代码。

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

<!--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>

此外,您需要关闭 built-in Squarespace 评论,这样您就不会同时出现在页脚中。