我在一个教育网站上工作,该网站制作视频内容,并使用BBPress论坛进行讨论,而不是本地的WordPress评论。其工作原理如下:
我有个钩子wp_insert_post
创建一个新的BBPresstopic
当一个新的video
创建帖子并保存此新帖子topic_id
到a_comment_topic_id
元字段。
在我的single-video.php
显示视频的模板,我正在使用BBPress[bbp-single-topic id=$topic_id]
显示主题线程和回复表单的快捷码,供人们发表评论。
所有这些都很好!我只是有一个问题——当人们通过视频单页发布回复时,BBPress的“订阅”功能不起作用。回复发布得很好,但订阅用户没有收到通知。如果您不熟悉,当用户订阅某个线程时,每当有人回复该线程时,他们就会收到一封电子邮件。当有人通过实际的线程单页发布回复时,这仍然可以正常工作-这只是通过视频单页上的短代码嵌入的线程上的问题。
我试着挖掘核心,我甚至发现bbp_new_reply
操作未启动-BBPress使用一个名为bbp_notify_topic_subscribers
连接到bbp_new_reply
发送通知,而当通过视频单页进行回复时,该功能根本没有运行。
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
在行动开始之前,我也不知道如何或在哪里找到它,以及如何修补它。
谢谢