Передача переменной Extra в подключаемую функцию - PullRequest
3 голосов
/ 13 августа 2011

Я хочу передать переменную $ extra в my_function, в wordpress.Является ли следующий способ (определяющий глобальный) сделать это, или есть ли лучший способ сделать это .....

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 голосов
/ 14 августа 2011

Есть 2 способа сделать это:

  1. Определить глобальную переменную, если выполняемое вами действие - встроенная WordPress.
  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
0 голосов
/ 13 августа 2011

Вместо этого вы можете передать массив в качестве аргумента. Не самый красивый способ, но он бы сработал.

$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*/
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...