Описание
Создает хук (действие) для зацепки функции. Аргументы передаются из массива.
Эта функция идентична do_action(). Разница в том, что аргументы передаваемые через этот хук определяются, используя массив.
Ничего не возвращает.
Использование
<?php do_action_ref_array( $tag, $arg ); ?>
Параметры
- $tag (строка) (обязательный)
- Название хука, на который будет вешаться функции через функцию add_action().
По умолчанию: нет - $arg (массив) (обязательный)
- Аргументы передаваемые функции, которая будет цепляться на хук.
По умолчанию: нет
Примеры
1. Пример создания хука с использованием do_action_ref_array(). Создаем хук где-нибудь в плагине, таким образом:
do_action_ref_array( 'wp_feed_options', array( &$feed, $url ) );
затем где-нибудь в functions.php цепляемся на этот хук, так:
add_action( 'wp_feed_options', 'add_feed_options', 10, 2 );
function add_feed_options($feed=0, $url){
var_dump($feed); // элемент 1 массива переданого в хуке
echo '<br>';
var_dump($url); // элемент 2 массива переданого в хуке
}
do_action_ref_array()
из файла: /wp-includes/plugin.php WP 3.3.2function do_action_ref_array($tag, $args) {
global $wp_filter, $wp_actions, $merged_filters, $wp_current_filter;
if ( ! isset($wp_actions) )
$wp_actions = array();
if ( ! isset($wp_actions[$tag]) )
$wp_actions[$tag] = 1;
else
++$wp_actions[$tag];
// Do 'all' actions first
if ( isset($wp_filter['all']) ) {
$wp_current_filter[] = $tag;
$all_args = func_get_args();
_wp_call_all_hook($all_args);
}
if ( !isset($wp_filter[$tag]) ) {
if ( isset($wp_filter['all']) )
array_pop($wp_current_filter);
return;
}
if ( !isset($wp_filter['all']) )
$wp_current_filter[] = $tag;
// Sort
if ( !isset( $merged_filters[ $tag ] ) ) {
ksort($wp_filter[$tag]);
$merged_filters[ $tag ] = true;
}
reset( $wp_filter[ $tag ] );
do {
foreach( (array) current($wp_filter[$tag]) as $the_ )
if ( !is_null($the_['function']) )
call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));
} while ( next($wp_filter[$tag]) !== false );
array_pop($wp_current_filter);
}Связанные Функции
Ещё из раздела
Смотрите также: Функции WordPress и Теги Шаблона.
Часто получается так, что если нам нужно что-то сделать, то сделать это лучше самому, ведь у каждого из нас своя точка зрения и свой вкус. Точно так же мы часто создаем сайт сами, порой получается конечно не очень хорошо, но это опыт, который обязательно будет нужен в будущем, в будущем где правит интернет.