techops
(Techops)
1
在使用 Discourse WordPress 插件将 WordPress 文章发布到 Discourse 时,我遇到一个问题。
问题描述:
当我创建一篇新文章并在发布前,在 Discourse 选项卡下勾选“发布到 Discourse”时,文章成功发布到 WordPress。但是,Discourse 主题并未在此时创建。
之后,如果我编辑同一篇文章,再次进入 Discourse 选项卡,然后点击**“新建主题”并发布到 Discourse,文章确实被创建到了 Discourse 站点。但这个 Discourse 主题并未与原始的 WordPress 文章关联**。没有永久链接关联或元数据被保存回文章。
调试发现:
在调试过程中,我注意到调用:
/wp-json/wp-discourse/v1/publish-topic
返回以下响应:
{
"publish_response": "success",
"permalink": ""
}
如您所见,“permalink”字段为空。这似乎是 Discourse 主题被创建但未链接回 WordPress 文章(即,永久链接未存储在 postmeta 中,因此 WP 和 Discourse 之间的链接断开了)的核心原因。
您能否帮助调查为什么 API 响应中返回的永久链接为空?是插件配置错误还是发布工作流程中存在 bug?
如果您需要任何日志或进一步的信息,请告诉我。感谢您的帮助!
angus
(Angus McLeod)
3
您好 @techops,能否请您分享一下 WordPress 中 WP Discourse > Logs 的相关日志?如果可能的话,也请分享该视图中的元文件。
1 个赞
techops
(Techops)
4
您好 Angus,
感谢您的快速回复。
在 WordPress 后台的 WP Discourse > Logs 下没有日志可用,日志视图目前是空的。
但是,这是您要求的元文件:Discourse meta - Google Docs
如果还有其他可以提供的信息来帮助解决此问题,请告诉我。
谢谢!
angus
(Angus McLeod)
5
感谢 @techops,有几件事我想做。
请在“发布设置”中禁用此设置:
发布失败时发送电子邮件通知
请确保在“发布设置”中启用此设置:
详细发布日志
您已设置了多种文章类型用于发布:
post,event,groups,collections,podcast
您在使用哪种文章类型时遇到此问题?如果不是 post,您能否更详细地说明该文章类型的设置方式?
techops
(Techops)
6
您好 Angus,
我已应用建议的设置:
- 禁用:发布失败时发送电子邮件通知
- 启用:详细的发布日志
我只使用 post 帖子类型。
更新设置后,我创建并发布了一个新帖子到 Discourse。这是生成的日志:
[2025-04-22 15:58:12] publish.INFO: create_post.post_success {"wp_title":"test post 4","wp_author_id":"221","wp_post_id":15068}
[2025-04-22 15:58:12] publish.INFO: create_post.body_valid {"wp_title":"test post 4","wp_author_id":"221","wp_post_id":15068}
[2025-04-22 15:58:12] publish.INFO: create_post.after_publish {"post_id":15068,"remote_post_type":"create_post","discourse_post_id":"","discourse_topic_id":"6910","discourse_permalink":""}
如果您需要任何其他信息或详细信息,请告诉我。
谢谢!
angus
(Angus McLeod)
7
感谢您的分享。那些日志在我看来是正常的。我可以看到在Wordpress发布后,Discourse主题正在被创建。能否请您确认一下具体的问题所在?请用以下这些术语描述:
- 我在Wordpress中编辑一篇帖子。
- 在帖子发布后,我期望看到的是……
此时请不要做任何技术假设。谢谢!
techops
(Techops)
8
你好Angus,
我在WordPress中编写了一个帖子。
在帖子发布后,我希望看到以下行为:
当**‘发布到Discourse’**复选框被选中时,正确的行为应该是在Discourse中创建一个帖子,并且它应该与WordPress中的帖子链接关联。
然而,实际发生的是帖子在Discourse中被创建了,但链接立即丢失了。随后必须手动重新创建链接。
谢谢!
techops
(Techops)
10
感谢您的跟进。以下是详细信息:
- 我们正在使用 Gutenberg 编辑器创建帖子。
- 我们不使用任何自定义字段插件,例如 Advanced Custom Fields。
- 我录制了一个重现问题的视频供您审阅。您可以在此处查看。
如果您需要任何其他信息或进一步的测试,请告诉我。
如果对您有帮助,我也可以提供临时登录访问权限,以便您直接查看设置。
谢谢!
angus
(Angus McLeod)
11
感谢您录制视频。看起来您正在使用自定义发布工作流来发布帖子。
这可能与问题有关。
您能否尝试在不使用此自定义工作流的情况下发布帖子?我们将通过排除法来找出问题的根源。很可能是您的某个自定义设置与 WP Discourse 的发布功能集不兼容。
techops
(Techops)
12
谢谢你的建议。
我已测试过直接发布帖子而不使用自定义工作流,但不幸的是,它仍然不起作用。
angus
(Angus McLeod)
13
好的,请继续保持这种风格。您的某个自定义设置很可能阻止了 WP Discourse 插件在主题发布时保存 post_id 和永久链接。
techops
(Techops)
14
谢谢你,Angus。
我已经找到了罪魁祸首,SmartCrawl SEO插件与WP Discourse存在冲突。在停用SmartCrawl后,帖子如预期般发表到Discourse,并能正确链接到WordPress的帖子。
1 个赞
angus
(Angus McLeod)
15
在找到罪魁祸首方面做得不错。我认为此时值得将此问题提交给他们的支持团队,也就是“你的插件似乎阻止了另一个插件使用标准的WordPress API…”然后描述一下这个问题。你或许可以引导他们查看这个话题。