do_action() — создаёт хук (крючок), на месте которого в коде можно выполнить произвольную функцию

Принцип работы do_action() очень похож на принцип работы функции apply_filters() — всё начинается с кода, изменять который пользователю/разработчику сайта не стоит, и в этом коде есть место в котором потенциально будет нужно выполнить какой-то код. И в это место при помощи do_action() ставится хук, который позволяет это осуществить

do_action($tag, $arg = '', $arg2 = '', ... )
$tag
(строка) Название функции, которая будет запущена.
$arg
Любое количество переменных, которые будут переданы в эту функцию.

Функция ничего не возвращает.

Пример использования do_action()

Предположим, что вы пишете свой плагин, и в этом плагине допустим есть место, в котором возможно потребуется выполнение дополнительного кода, скажем так — кому-то может потребуется, а кому-то нет.

В это место кода вы вставляете функцию do_action()

do_action( 'misha_action' );

Теперь, при помощи уже функции add_action() где-либо в другом месте можно запустить привязанную к этому хуку функцию, например в файле functions.php текущей темы, например.

add_action( 'misha_action', 'misha_function_1' );
 
function misha_function_1() {
    echo 'Привет';
}

Также вы можете передавать несколько параметров

Тогда наш код примет вид:

do_action( 'misha_action', $param1, $param2, $param3 );

И

add_action( 'misha_action', 'misha_function_1', 10, 3 ); // 3 - количество параметров
 
function misha_function_1( $param1, $param2, $param3 ) {
 
    if( $param1 == $param3 )
        echo 'Привет';
    else
        echo 'Привет' . $param1 . $param2 . $param3;
 
}

Подробнее — в документации функции add_action().

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: