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().

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Добрый день! В принципе вам только немного нужно доработать код из этого поста - категории уже есть, цена - это и так...

  • eveniy: Добрый день Михаил, подскажите на примере как добавить свои произвольные поля в в вашу форму фильтрации: Я так понимаю...

  • Миша: Отлично! )

  • Дмитрий: сам разобрался: в настройках кастомного типа записи недавно оптимизировал настройки и переоптимизировал: в аргументе 'ta...

  • Дмитрий: У меня по какой-то причине пропало отображение (как в колонке меню слева, так и метабокс в записях ) раздела рубрик для...