近五年来,我的博客一直使用 @techAPJ 的 wp-discourse-embed。这是一篇帖子示例:
Soya Chunks Masala Dry Recipe | A Little Bit of Spice 以及对应的论坛帖子:Soya Chunks Masala Dry - blog - comments
我成功迁移并设置了 @angus 的 WP Discourse:
但现在,旧的论坛帖子没有显示为博客帖子的评论。上面的博客帖子就是一个例子。
我猜需要进行一些映射。
我该如何集成呢?
这是我的日志样子:
还有最新的日志:
[2024-04-03 01:42:27] webhook_topic.ERROR: update_topic_content.webhook_verification_error [“message”,“Discourse Webhook Request Error: signatures did not match.”]
原始日志在此处。
您好,
关于:
此错误表示 WP-Discourse 中的 Webhook Secret Key 选项值与您 Discourse 网站的 webhook 中定义的密码不匹配。您可以检查一下吗?
@simon 如果我说错了会纠正我,但是的,WP 帖子需要同步到 Discourse 主题。对于现有主题,您应该可以选择链接到一个现有的 Discourse 主题:
。
同步后,评论应该会被检索。
我不确定是否有更好的方法;希望有人能提供更深入的见解。
你在两个问题上都说对了。
@Jane_Jojo,请尝试使用 @Arkshine 展示的方法,将现有的 Discourse 主题链接到其对应的 WordPress 帖子。请注意,用户界面会因您使用的是经典的 WordPress 编辑器还是新的块编辑器而略有不同。
如果将 Discourse 主题链接到 WordPress 帖子有效,接下来的问题将是如何链接您所有现有的主题和帖子。您有多少旧帖子?如果手动链接到 Discourse 的帖子太多,可能有一种方法可以自动化该过程。
谢谢。
我做了这个。
当我进行 ping 时,我得到了 200,所以这很清楚。
然后我做了这个:
但帖子没有反映出来
我还有什么遗漏的吗?日志似乎没有任何更新。
更新:
当我从 discourse 钩子进行 ping 时
我在日志这边看到了这个
[2024-04-03 21:38:14] webhook_topic.ERROR: update_topic_content.response_body_error
您看到的错误消息将在您“ping”钩子时生成。在 WordPress 端,代码期望 Discourse 发送的钩子中有一个 post 对象。如果您仅单击“ping”按钮,则该帖子将不在负载中。尝试在与 Discourse 链接的 Discourse 主题上发表评论,看看是否仍然出现错误。
关于让 Discourse 评论显示在您的 WordPress 网站上的问题:
- 确保您已在 WordPress 上为发布到 Discourse 的帖子启用评论
- 确保启用了“启用 Discourse 评论”选项:
如果您以前未在 WordPress 网站上启用评论,则可能不希望现在为尚未与 Discourse 连接的帖子启用它们。为避免为这些帖子显示 WordPress 评论表单,您可以启用全站评论,然后在 WP Discourse Commenting Options 页面中选择“删除 WordPress 评论模板”设置:
如果您仍然遇到问题,请告知我们。
当我查看页面的源代码时,我在 HTML 中看到一堆 discourse 引用。所以它在尝试一些东西……
您可以检查一下您链接到 Discourse 的帖子的评论是否已启用?有时“讨论”选项不会显示在编辑页面上。您可能需要从“屏幕选项”菜单中选择它才能看到它:
嗯,我没有在页面上看到任何表明评论模板正在加载的迹象。您截图中的 discourse-embed-js 引用并非来自 WP Discourse 插件。我认为它与 wp-discourse-embed 插件加载的脚本有关。它实际上在您的网站上触发了一个错误:
Failed to load resource: the server responded with a status of 404 () discourse-embed.js
页面上还有一个 <div>,来自 wp-discourse-embed 插件,而不是 WP Discourse 插件。
在您确认网站上缓存的评论存在问题之前,我不建议启用 WP Discourse 的“通过 Ajax 加载评论”设置。即使那样,它也应该能够显示评论模板。
您的网站上是否安装了与评论相关的插件?我想知道是否是某个插件或网站主题阻止了 WordPress 评论模板的加载。WP Discourse 插件依赖于该模板的加载。有一些变通方法,但它们都相当技术化。
我相信我们一定能解决这个问题 
我在查看主题代码历史记录时,发现不久前我已将所有 WP 注释代码更改为 discourse 注释。
我怀疑需要旧版代码,对吗?
simon
14
我凭记忆来说,我不认为修改过的 comments.php 文件是导致问题的原因。应该发生的是,WP Discourse 插件应该在你的主题调用此函数时加载自己的评论部分,而不是加载你主题的 comments.php 文件:comments_template()。
查看你主题的 single.php 文件,或者用于显示你链接到 Discourse 的帖子的任何文件。看看该文件是否包含对 comments_template() 的调用。它看起来会像这样:
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
正是对 coments_template() 的调用应该触发 WP Discourse 评论的加载。
我可能对此有误。如果这不能帮助解决问题,我可以再仔细看看。
我已经解决了这个问题。评论在主题级别被禁用了。启用它就解决了。\n\n感谢您提供的详细回复。