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

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

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

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

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

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