BBPress bbp_new_reply 操作在用户回复嵌入式线程时未触发

BBPress bbp_new_reply action not firing when user replies to embedded thread

我在一个教育网站工作,该网站制作视频内容并使用 BBPress 论坛进行讨论,而不是本地 WordPress 评论。它是这样工作的:

我在 wp_insert_post 上有一个钩子,它在创建新的 video post 时创建一个新的 BBPress topic 并将这个新的 topic_id 保存到_comment_topic_id 元字段。

在我显示视频的 single-video.php 模板中,我使用 BBPress [bbp-single-topic id=$topic_id] 短代码来显示主题线程和人们对 post 评论的回复表单。

所有这一切都很棒!我只是遇到一个问题 - 当人们 post 通过单一视频页面回复时,BBPress 的 "subscribe" 功能不起作用。回复 posted 就好了,但订阅的用户不会收到通知。如果您不熟悉 - 当用户订阅一个线程时,只要有人回复该线程,他们就会收到一封电子邮件。当有人 post 通过实际线程单页回复时,这仍然工作正常 - 这只是通过视频单页上的简码嵌入的线程的问题。

我已经尝试深入研究核心,但我发现 bbp_new_reply 操作没有触发 - BBPress 使用一个名为 bbp_notify_topic_subscribers 的函数挂接到 bbp_new_reply 发送通知,当通过视频单个页面进行回复时,该功能根本 运行ning。

BBPress 似乎使用了一些隐藏的输入来确定在提交回复后要 运行 采取什么行动,但这些似乎已通过简码正确包含。这些出现在主题单一形式的底部(正常工作);

<input type="hidden" name="bbp_topic_id" id="bbp_topic_id" value="422573">
<input type="hidden" name="bbp_reply_to" id="bbp_reply_to" value="0">
<input type="hidden" name="action" id="bbp_post_action" value="bbp-new-reply">
<input type="hidden" id="_wpnonce" name="_wpnonce" value="83ea236cd1">
<input type="hidden" name="_wp_http_referer" value="/forums/topic/SLUG/">

而且这些都出现在视频单一形式的底部(那不是)

<input type="hidden" name="bbp_topic_id" id="bbp_topic_id" value="422573">
<input type="hidden" name="bbp_reply_to" id="bbp_reply_to" value="0">
<input type="hidden" name="action" id="bbp_post_action" value="bbp-new-reply">
<input type="hidden" id="_wpnonce" name="_wpnonce" value="83ea236cd1">
<input type="hidden" name="_wp_http_referer" value="/videos/SLUG/">

我不知道如何进一步调试这个问题,真的需要一些帮助。 BBPress 在核心中有各种页面 type/post 类型检查,我一直在回避和编织,但这个让我难住了。我怀疑问题是它在某处检查当前 post 的 post 类型,看到它是 video 而不是 topic 并在操作 运行s,但我不知道如何或在哪里找到它以及如何修补它。

谢谢!

原来我跟踪的每条线索都是转移注意力的线索。

我在 wp_insert_post 中附加了另一个功能,如果您从视频单页发布回复,它会将您重定向回视频单页,而不是将您发送到线程单页。事实证明,在允许触发 bbp_new_reply 操作之前,重定向已命中并停止执行。

我将该函数更改为也挂接到 bbp_new_reply 并将其优先级更改为 11,以便在本机操作之后 运行。干得漂亮!