Blogger站点Facebook评论插件多端评论区合并技术咨询
解决Blogger中Facebook评论插件桌面/移动端评论区分离的问题
这个问题的核心原因很明确:Facebook评论插件是通过href参数来识别对应评论区的——只要两端的href值不一致,就会被判定为两个独立的页面,生成分开的评论区。而你的情况应该是Blogger在移动端自动给URL加上了?m=1这类参数,导致data:post.canonicalUrl在两端输出了不同的值。
下面是具体的解决方法,能让桌面和移动端的评论区完全合并:
修改插件代码,统一href参数
把你代码中依赖canonicalUrl的部分,替换为去除移动端参数的帖子永久链接,确保两端的href完全一致。修改后的代码如下:
<b:if cond='data:blog.pageType == "item"'> <h2>Comment with Facebook</h2> <div class='fb-comments' data-numposts='5' data-width="100%" expr:href='data:post.url.replace(/\?m=1$/, "")' expr:title='data:post.title' expr:xid='data:post.id'> </div> </b:if>
代码说明:
expr:href='data:post.url.replace(/\?m=1$/, "")':这段表达式会自动移除移动端URL末尾的?m=1参数,不管是桌面还是移动端访问,最终输出的href都是不带移动端标识的原始帖子链接。- 你原本用的
expr:xid='data:post.id'很好,这个参数是帖子的唯一ID,能辅助Facebook进一步确认评论区的关联性,起到双重保障的作用。
验证修改效果
修改代码后,分别在桌面和移动端打开同一篇帖子,用浏览器的开发者工具(F12)查看fb-comments元素的href属性,确认两者的数值完全相同。只要这一步没问题,两端的评论区就会自动合并,所有评论都会同步显示。
内容的提问来源于stack exchange,提问作者Rohan641
相关产品推荐
相关产品推荐

