关于程序化链接到现有主题的快速问题

我正在使用前端表单在 WordPress 中创建帖子,并希望将这些帖子与现有的 Discourse 主题关联起来。

我的计划是:在添加或编辑 WordPress 帖子时,将现有主题的 URL 输入到 ACF 字段中。

接下来,我将使用:

add_action('acf/save_post', 'my_acf_save_post', 25);

my_acf_save_post 函数中,我将执行:

protected function link_to_discourse_topic( $post_id, $topic_url )

参考 此处

我这样走对吗?

1 个赞

是的,你走在正确的轨道上。大体来说,你需要做的是:

  1. 从 Discourse 获取话题详情(除非你已经有这些数据)
  2. 将相关详情保存到正确的帖子元数据字段中

正是你在所链接的函数中看到的那些帖子元数据字段建立了这种连接。

我还将此项任务加入到了我的 WP Discourse 开发计划中:为了让这一过程更简便,即通过一个单一的公共工具函数来实现该目标。我已将其安排在六月完成。

此外,请查看 lib/plugin_utilities.phplib/utilities.php 中现有的工具函数,以及 admin/discourse-sidebar/discourse-sidebar.php 中相应的 link_topic 方法。

请告诉我你的进展如何。

2 个赞

@Angus,感谢你的回复。我还在 PHP 的入门阶段,所以如果你打算处理这个问题,我会先等待。

另外,我在 WP 插件中遇到了一个可复现的错误。不确定你是希望我单独发帖还是提交 GitHub issue,但问题如下:

当我打开一个与论坛主题关联的 WP 文章时,Discourse 区块中没有显示该链接。看起来就像没有链接一样。

发生条件:
无论是通过发布“新主题”创建的链接,还是通过“链接到现有主题”创建的链接,都会出现此问题。

我的 WP 文章是自定义文章类型(CPT)。

我的评论设置是“显示评论链接”。

除此之外,我的安装环境没有任何特殊配置。

确认:
我可以确认,那些在 Discourse 区块中未显示的链接确实存在:我可以在管理列中看到它们,并且能够通过前端链接点击跳转到对应的论坛帖子。

我很乐意提供更多信息或协助测试。

祝好,
Richard

1 个赞

您是否在“要发布的文章类型”发布设置中添加了您的自定义文章类型?请参阅下文:

1 个赞

是的。我本应提到,起初一切正常:我可以发布新话题,或链接到现有话题,且双向链接均能正常工作……但

如果之后在 WordPress 中重新编辑某篇帖子,Discourse 区块会显示未链接任何内容,尽管我的 WordPress 前端链接仍能正确指向对应的论坛话题,且论坛话题中的链接也能正确跳转回对应的 WordPress 帖子。

因此,问题仅出现在 WordPress 的 Discourse 区块在重新编辑帖子时。

如有需要,请随时告知。

1 个赞

谢谢,还有几个问题:

  1. 您的浏览器网页检查器控制台中是否看到任何错误?

  2. 如果在查看编辑器时对页面进行完全刷新,会发生什么情况?

这听起来像是一个 JavaScript 问题。这可能是由多种原因引起的,包括其他插件或浏览器扩展。如果可能,我们需要进一步缩小问题范围。

1 个赞

控制台:在当前页面中找不到节点

首先,Discourse 区块会显示“发布选项 / 置顶主题”和“发布到 Discourse”部分。随后“分类”部分才会出现。不会显示现有链接。

我关闭了除 WP-Discourse、CPT 和 ACF 之外的所有插件,然后分别在 Brave 浏览器和 Edge 浏览器中进行了测试,两个浏览器均未安装任何扩展且已关闭防护功能。仍然无法在 Discourse 区块中看到现有链接。

我正在普通帖子和 CPT 帖子之间进行测试。我会告知你结果。

1 个赞

不知为何,我的链接现在显示在 Discourse 区块中。如果我发现这个问题的规律,我会再反馈。谢谢。

2 个赞