为动态产品添加Facebook插件评论

时间:2012-01-25 12:07:56

标签: plugins dynamic facebook-comments

我在我的网站上安装了Facebook评论。我的网站是一个动态网站,页面如下:www.example.com/page?id = 54,www.example.com / page?id = 67。

如果我在此页面发表评论:www.site.com/page?id = 54,它也会显示在www.example.com/page?id=67中。评论不是页面唯一的,而是出现在每个页面中

我看到了这个问题:Facebook comments, for each page。 这个问题的答案是问题是因为“?”标志。 看起来 ”?”登录URL使其为Facebook插件打破。 我需要改变URl写作的形式。

由于我的网站已有7年历史,因此我不想改变URl写作的方法。

还有另一种解决方法吗?

4 个答案:

答案 0 :(得分:13)

首先,从Facebook复制评论div和脚本,将其粘贴到您的产品详细信息页面:

<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&appId=114215202075258";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>

<div class="fb-comments" data-href="http://example.com" data-width="470" data-num-posts="3"></div>

最后,只需添加以下代码:

<script>
    $(".fb-comments").attr("data-href", window.location.href);
</script>

答案 1 :(得分:4)

如果您正在使用PHP,则此代码将请求当前页面的URL,然后将Facebook评论链接到该页面:

<?PHP    
$url = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
echo "<div class='fb-comments' data-href='$url' data-num-posts='10' data-width='470'></div>";
?>

如果您的动态内容只有一个查询字符串(例如?product =),则此方法有效。如果它有相同页面的更多查询字符串,例如&amp; sort = for sorting options,那么它将无法正常工作,因为排序选项升序时出现的Facebook评论不会出现在排序选项降序上,因为示例

您可以通过为该产品分配基本网址,然后在该产品的所有动态网页上显示该网址的FB评论来解决此问题。例如,您正在为页面请求FB评论?product = 13&amp; sort = asc&amp; type = 34,即使该页面上的&amp; sort和&amp; type不同。

答案 2 :(得分:1)

将小部件插入页面时,您可以添加类似于以下代码的内容:

<div class="fb-comments" data-href="http://example.com" data-num-posts="2" data-width="470"></div>

您需要每次为新页面替换http://example.com,一次用?id = 54,另一次用?id = 67替换每个相关页面。

答案 3 :(得分:0)

嗯,我很困惑。你说该网站已有7年历史,你无法改变它,但不知何故,你最近将这个插件插入了一个不可更改的网站。现在你想要办法修复这个不可改变的网站。

但是,如果您可以更改网站,这就是您需要做的事情:

  1. 将所需的og元标记放入每个网页的<head>部分,如同插件文档网站上所述。您可以使用.asp编码技巧通过查询字符串参数以编程方式执行此操作。
  2. 测试/质量检查在https://developers.facebook.com/tools/lint
  3. 正确指定了OG元标记
  4. 为插件添加所需的html代码,并确保在类似插件的data-href参数中正确且完全标识href
  5. 通过查看正在发送的页面上的来源来测试/ QA类似按钮。
  6. 修改

    看看Facebook看到你的网址

    http://developers.facebook.com/tools/debug/og/echo?q=http%3A%2F%2Fwww.winebar.co.il%2Fproduct.asp%3Fproductid%3D567%26CatCode%3D182

    注意插件代码

    坏: data-href="http://winebar.co.il/product.asp?productid="

    如果应该看起来像用户浏览器栏中的URL:

    GOOD: data-href="http://www.winebar.co.il/product.asp?productid=567&CatCode=182"