http://codex.wordpress.org/Plugin_API/Action_Reference/save_post
为什么 Wordpress 没有包含$post
和$post_ID
参数及其功能。我只有在查看源代码时才意识到这些参数存在,这些参数实际上是做什么的?你不认为他们需要在动作钩子引用中包含每个参数,以便我们可以将动作分配给钩子
http://codex.wordpress.org/Plugin_API/Action_Reference/save_post
为什么 Wordpress 没有包含$post
和$post_ID
参数及其功能。我只有在查看源代码时才意识到这些参数存在,这些参数实际上是做什么的?你不认为他们需要在动作钩子引用中包含每个参数,以便我们可以将动作分配给钩子
$post
保存正在保存的帖子对象。
$post_ID
保存正在保存的帖子的 ID。
拨打电话时,您可以在回调函数中获取这些参数add_action
。
例子
add_action( 'save_post', 'my_save_function', 10, 2 );
10 代表优先级 - 10 是默认值,数字越小,优先级越高(即运行越早)。
最后一个参数中的“2”是传递给回调的参数数量。默认值为 1,但正如您所说,此处可以有 2 个参数,因此您可以提高值以获取它们,如果它们都需要的话。
function my_save_function( $post, $post_ID ) {
// Do stuff here.
}
有许多带有可变数量参数的操作/过滤器是隐式未知的,因此这样做可以使代码更加灵活。
回答为什么它不包含在保存回调中 - 在那种情况下不需要它。该$post
对象提供了一种访问 ID 的简单方法。您可能希望将它包含在您自己的钩子中 - 也许如果您出于某种原因更改对象,但实际上有无限的可能性。
最好做你已经做过的事情并检查核心是否有这样的事情,了解核心是什么,使使用 WordPress 进行开发变得更加容易:)
class myObj {
function on_save_post($post_ID, $post)
{
// process here
}
}
add_action('save_post', array('myObj', 'on_save_post'));
此类myObj的位置是您将拥有所需的所有参数,因此您可以在save_post中传递所需的所有变量