从 wp-discourse-embed 迁移到 WP Discourse – 旧帖子未显示

近五年来,我的博客一直使用 @techAPJwp-discourse-embed。这是一篇帖子示例:

Soya Chunks Masala Dry Recipe | A Little Bit of Spice 以及对应的论坛帖子:Soya Chunks Masala Dry - blog - comments

我成功迁移并设置了 @angusWP 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.”]

原始日志在此处。

1 个赞

您好,

关于:

此错误表示 WP-Discourse 中的 Webhook Secret Key 选项值与您 Discourse 网站的 webhook 中定义的密码不匹配。您可以检查一下吗?

@simon 如果我说错了会纠正我,但是的,WP 帖子需要同步到 Discourse 主题。对于现有主题,您应该可以选择链接到一个现有的 Discourse 主题:


同步后,评论应该会被检索。

我不确定是否有更好的方法;希望有人能提供更深入的见解。

4 个赞

你在两个问题上都说对了。

@Jane_Jojo,请尝试使用 @Arkshine 展示的方法,将现有的 Discourse 主题链接到其对应的 WordPress 帖子。请注意,用户界面会因您使用的是经典的 WordPress 编辑器还是新的块编辑器而略有不同。

如果将 Discourse 主题链接到 WordPress 帖子有效,接下来的问题将是如何链接您所有现有的主题和帖子。您有多少旧帖子?如果手动链接到 Discourse 的帖子太多,可能有一种方法可以自动化该过程。

2 个赞

谢谢。

我做了这个。

当我进行 ping 时,我得到了 200,所以这很清楚。

然后我做了这个:


但帖子没有反映出来

我还有什么遗漏的吗?日志似乎没有任何更新。

更新:
当我从 discourse 钩子进行 ping 时

我在日志这边看到了这个

[2024-04-03 21:38:14] webhook_topic.ERROR: update_topic_content.response_body_error

您的 WordPress 是否使用了缓存插件?

您可能需要启用此设置:

另外,如果尚未启用,启用评论调试可能也会有帮助:

image

您看到的错误消息将在您“ping”钩子时生成。在 WordPress 端,代码期望 Discourse 发送的钩子中有一个 post 对象。如果您仅单击“ping”按钮,则该帖子将不在负载中。尝试在与 Discourse 链接的 Discourse 主题上发表评论,看看是否仍然出现错误。

关于让 Discourse 评论显示在您的 WordPress 网站上的问题:

  • 确保您已在 WordPress 上为发布到 Discourse 的帖子启用评论
  • 确保启用了“启用 Discourse 评论”选项:

如果您以前未在 WordPress 网站上启用评论,则可能不希望现在为尚未与 Discourse 连接的帖子启用它们。为避免为这些帖子显示 WordPress 评论表单,您可以启用全站评论,然后在 WP Discourse Commenting Options 页面中选择“删除 WordPress 评论模板”设置:

如果您仍然遇到问题,请告知我们。

1 个赞

已启用两者。没有运气。


页面已刷新,日志未显示任何内容

当我查看页面的源代码时,我在 HTML 中看到一堆 discourse 引用。所以它在尝试一些东西……

我的评论区设置一直都是这样的。

您可以检查一下您链接到 Discourse 的帖子的评论是否已启用?有时“讨论”选项不会显示在编辑页面上。您可能需要从“屏幕选项”菜单中选择它才能看到它:

是的,已启用 :-(\n\n

嗯,我没有在页面上看到任何表明评论模板正在加载的迹象。您截图中的 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 插件依赖于该模板的加载。有一些变通方法,但它们都相当技术化。

我相信我们一定能解决这个问题 :slight_smile:

1 个赞

我在查看主题代码历史记录时,发现不久前我已将所有 WP 注释代码更改为 discourse 注释。

我怀疑需要旧版代码,对吗?

我凭记忆来说,我不认为修改过的 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感谢您提供的详细回复。

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.