将Extra变量传递给钩子函数

时间:2011-08-13 09:34:05

标签: php wordpress

我想在WordPress中将$ extra变量传递给my_function。以下是执行此操作的唯一方法(定义全局),还是有更好的方法来执行此操作.....

global $extra;
$extra = 'some value';
do_action( 'save_post','my_function' $post_ID);

function my_function($post_ID) {
    global $extra;

/* other codes here*/
}

2 个答案:

答案 0 :(得分:0)

您可以将数组作为参数传递。不是最美丽的方式,但它会起作用。

$arg = array('extra'=>'some value', 'post_ID'=>$post_ID);
do_action('save_post','my_function', $arg);

function my_function($arg) {
    $extra = $arg['extra'];
    $post_ID = $arg['post_ID'];

    /* other codes here*/
}

答案 1 :(得分:0)

有两种方法可以做到这一点:

  1. 如果您正在执行的操作是wordpress builtin,则定义一个全局变量。
  2. 如果操作是您的自定义操作 - 您可以使用do_action('action_name', $arg1, $arg2)add_action($action_name, $callback_function, $priority, $arg_count),其中$arg_count是操作处理程序接受的参数数量。在大多数情况下,$priority应为10。另请参阅http://codex.wordpress.org/Function_Reference/add_action