我现在一直在处理这个问题。我至少需要一些帮助或推动正确的方向,因为我很难过。
问题:我需要在functions.php
中获取帖子ID我正在使用一个名为 SS Quiz 的插件。这个插件是一个测验制作插件,你在后端进行测验并使用WP WYSIWYG编辑器中的短代码显示它。很简单,就像很多插件一样。
SS Quiz 有一个钩子,一旦提交了测验,它就会执行一段代码。以下是确切的代码和文档:
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?无论是在实时服务器上还是本地服务器上。我现在只需要朝着正确的方向努力。
任何帮助将不胜感激!
答案 0 :(得分:1)
也许你需要编辑插件。
在调用操作的插件中:
do_action( 'ssquiz_finished', $info->quiz->id, $info->user->id, $info->questions_right, $info->total_questions );
将帖子ID添加到参数中。它使用的是一个$ info对象,它在ssquiz_start()中设置,当short_code运行时,你将能够使用$ global获取帖子ID并将其添加到$ info对象。