add_action() — позволяет запустить функцию на месте указанного хука

Работает в совокупности с функцией 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, либо в моём руководстве по фильтрам и хукам.

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

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

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

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

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

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