http://codex.wordpress.org/Plugin_API/Action_Reference/save_post
为什么Wordpress没有包含$post
和$post_ID
参数及其功能。我知道这些参数只有在我检查源代码时才存在,这些参数实际上做了什么?
你不认为他们需要在action钩子引用中包含每个参数,以便我们可以为钩子
答案 0 :(得分:1)
$post
保存正在保存的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更容易开发:)
答案 1 :(得分:0)
class myObj {
function on_save_post($post_ID, $post)
{
// process here
}
}
add_action('save_post', array('myObj', 'on_save_post'));
此类 myObj 的位置是您拥有所需的所有参数,因此您可以在 save_post
中传递所需的所有变量