Работает в совокупности с функцией do_action() — при помощи которой в коде сначала ставятся хуки (крючки), затем на месте этих хуков регистрируем выполнение произвольных функций уже при помощи add_action()
.
add_action( $tag, $function_to_add, $priority = 10, $accepted_args = 1 );
- $tag
- (строка) Название хука-действия. Должно быть уникальным, то есть вы не можете использовать например
wp_head
. - $function_to_add
- Укажите название функции в виде строки, класса в виде массива, либо анонимную функцию, если ваша версия PHP выше, чем 5.3.0, более подробно об этом я уже писал в описании функции add_filter().
- $priority
- (целое число) Приоритет выполнения. Чем он меньше, тем раньше выполнится функция, связанная с этим хуком.
- $accepted_args
- (целое число) Количество переменных, передаваемых в функцию.
Возвращает true
в случае успешной регистрации хука, false
— в противном случае.
Пример использования
В принципе не буду далеко ходить, приведу пример с официальной документации WordPress. Хук publish_post
запускается сразу после публикации поста.
/** * При публикации нового поста, отправляем уведомления друзьям * * @param int $post_id ID опубликованного поста * @return int Post ID. */ function misha_notify_friends( $post_id ) { $friends = 'misha@example.org, igor@example.org'; wp_mail( $friends, "Новый пост на блоге!", 'Я только что обновил блог, вот <a href="' . get_permalink( $post_id ) . '">ссылка на новый пост</a>'); return $post_id; } add_action( 'publish_post', 'misha_notify_friends' );
Также в примере я использовал функции wp_mail() — для отправки емайлов и get_permalink() для получения ссылки на пост.
Другие примеры вы можете посмотреть на моём сайте на странице тега functions.php
, либо в моём руководстве по фильтрам и хукам.