需要在functions.php中获取Post ID


Need to get the Post ID inside functions.php

我已经讨论这个问题好几个小时了。我至少需要一些帮助或朝着正确的方向推动,因为我被难住了。

问题:我需要在functions.php 中获取帖子ID

我正在使用一个名为SS测验的插件。这个插件是一个测试制作插件,你可以在后台进行测试,并在你的WP所见即所得编辑器中使用短代码显示它。很简单,就像很多插件一样。

SS测验有一个钩子,一旦测验提交,它就会执行一块代码。以下是确切的代码和文档:

add_action('ssquiz_finished', 'after_quiz_done', 10, 4);
function after_quiz_done( $quiz_id, $user_id, $questions_right, $total_questions )
{
    // do stuff here
}
当用户完成SSQuiz时,会触发
钩子

我想做的是获取正在进行测试的当前帖子/页面的帖子id,并执行一段代码,简单地返回帖子id。我已经尝试了从使用global $post到在函数内设置postdata(setup_postdata())的所有操作。什么都没用。我可以返回像当前登录用户一样的东西,但不能返回帖子id。

有人能在自己的一端测试一下,看看如何获得帖子ID吗?无论是在实时服务器上还是在本地。在这一点上,我只需要朝着正确的方向推动一下。

如有任何帮助,我们将不胜感激!

也许您需要编辑插件。

在调用操作的插件中:

do_action( 'ssquiz_finished', $info->quiz->id, $info->user->id, $info->questions_right, $info->total_questions );

将帖子ID添加到参数中。它使用的是在ssquiz_start()中设置的$info对象。当short_code运行时,您可以使用$global获得post ID并将其添加到$info对象中。