我正在工作一个教育网站,该网站生产视频内容,并使用BBPress论坛进行讨论,而不是本机WordPress评论。这是其工作方式:
我在wp_insert_post
上有一个挂钩,该钩子在创建新的video
帖子时会创建新的bbpress topic
,并将此新的topic_id
保存到_comment_topic_id
Meta字段中。
在显示视频的single-video.php
模板中,我正在使用bbpress [bbp-single-topic id=$topic_id]
快捷代码显示主题线程和回复表单以供人们发表评论。
所有这些都很好!我只是遇到一个问题 - 当人们通过视频单页发布答复时,bbpress的"订阅"功能无法正常工作。答复发布得很好,但是订阅的用户未收到通知。如果您不熟悉 - 当用户订阅线程时,每当有人回复该线程时,他们会收到电子邮件。当有人通过实际线程单页发布答复时,这仍然可以正常工作 - 这只是通过视频单页上的短代码嵌入的线程上的问题。
我尝试挖掘核心,甚至发现bbp_new_reply
动作没有启动-BBPress使用挂在bbp_new_reply
中的bbp_notify_topic_subscribers
的函数发送通知,并且该功能根本不运行当通过视频单页进行答复时。
似乎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在我一直在躲避和编织的核心中有各种页面类型/帖子类型检查,但是这使我感到困惑。我怀疑问题是,在某个地方,它正在检查当前帖子的帖子类型,看到它是video
而不是topic
并在操作运行之前保释,但是我不知道如何或在哪里找到它以及如何围绕它进行修补。
谢谢!
事实证明我遵循的每个线索都是红鲱鱼。
我有另一个挂钩wp_insert_post
中的功能,它将您重定向到视频单页,而不是将您发送到线程单页,如果您从视频单页上发布了回复。事实证明,重定向正在允许bbp_new_reply
动作开火之前击中并停止执行。
我将该功能更改为bbp_new_reply
,并将其优先级更改为11,因此它将在本机操作后运行。工作很棒!