7

我在我的网站上安装了 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 评论。这个问题的答案是问题是因为“?” 符号。看起来 ”?” 登录 URL 使其无法用于 Facebook 插件。我需要改变 URl 写作的形式。

因为我的网站已有 7 年的历史,有传入链接,我不想改变 URl 编写的方法。

还有其他方法可以解决吗?

4

4 回答 4

15

首先,从 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>
于 2012-12-19T12:03:55.530 回答
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=),它就可以工作。如果同一页面有更多查询字符串,例如 &sort= 用于排序选项,那么它将无法正常工作,因为 Facebook 评论将出现在排序选项升序上,不会出现在排序选项降序上,例如。

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

于 2012-01-28T12:25:11.610 回答
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 替换每个相关页面。

于 2012-01-25T12:11:24.837 回答
0

嗯,我很困惑。您说该站点已有 7 年历史并且您无法更改它,但是您最近以某种方式将类似插件插入到一个不可更改的网站中。现在您想要修复这个不可更改的网站的方法。

但是,如果您可以更改网站,您需要执行以下操作:

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

编辑

看看 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:

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

于 2012-01-25T16:00:46.253 回答