2017-02-28 100 views
1

我在博客博客博客上添加了Facebook评论插件,它的工作正常,只是它在桌面和移动设备上对待相同的URL。在我使用的代码中,有一个expr:href ='data:post.url',它有助于识别页面的当前网址。问题是,当用户在桌面浏览器上时,链接将类似example.blogspot.com/post1.html,但移动设备上的相同链接看起来像example.blogspot.com/post1.html?m = 1,其中m = 1被添加以标识用户在移动浏览器上。问题出现了。 Facebook评论插件将页面视为不同的页面,只是因为页面末尾有微小的差异(m = 1)。结果是,移动用户看不到由桌面浏览器制作的评论,反之亦然。如果我在桌面浏览器中手动添加m = 1,评论将可见。移动版本的博客已关闭。如何解决这个问题?Facebook评论插件将不同的页面视为不同

一个相关的问题虽然不是同一个问题:Facebook comments plugin - same comments on every page

回答

1

使用

expr:href='data:post.canonicalUrl' 

代替

expr:href='data:post.url' 

使用data:post.canonicalUrl的好处是,URL始终保持不变不管你是在桌面或手机上使用它。此外,它始终返回URL的blogspot.com版本(当您不使用自定义域名时)仍然不受不断变化的ccTLD影响

+0

不幸的是,它不起作用。我仍然无法在桌面上看到移动设备发表的评论,反之亦然。如果?m = 1,那么来自移动设备的所有评论都是可见的。感谢您的帮助顺便说一句。忘了提及,我正在使用自定义域名 – Mattt

+0

这应该适用于您创建的新帖子。对于他们的评论只会链接到“yourdomain.com/YYYY/MM/post-title.html”类型的网址,而不管移动版或桌面版是否被打开。对于旧帖子,无法迁移链接到不同网址的评论。由于Facebook链接评论到网址,如果你想显示评论链接到移动版本或其他版本(例如,当URL有?m = 0),你可能不得不显示更多旧帖子的单个Facebook评论框,也请参阅到http://stackoverflow.com/q/17570850/933980 –

+1

非常感谢Prayag。它正在工作。我使用的是某些网站的旧代码,现在我使用了最近的来自Facebook开发者页面的代码,就像你说的,使用了expr:href ='data:post.canonicalUrl'而不是expr:href ='data:post.url'和我可以正确看到它。顺便说一句,我没有更老的评论,这不是一个问题。只需在备用博客上进行测试,然后再在主要的博客上进行实施。再一次,谢谢。 – Mattt