Экшены

wordpress-hooks

Обзор

Экшены являются одним из двух типов хуков. Они обеспечивают способ зацепки одной функции к другим функциям, так что дополнительный код может быть запущен в определенный момент при выполнении ядра WordPress, плагинов и тем. Экшены — коллеги фильтров.

Они работают путем вызова функции add_action() и передают два параметра: имя события к которому вы хотите подключиться и название вашей callback функции, которая будет выполнена при запуске события. Например,

Данная конструкция делает так, что ваша do_some_stuff() функция будет вызываться, когда WordPress запускает init событие.

Можете воспользоваться Hook section of Code Reference для примеров доступных событий. Когда вы станете более опытными, вы можете начать знакомство с WordPress ядром и в исходниках кода найти наиболее подходящие события.

Примеры

Если вы хотите изменить запрос MySQL, который извлекает записи для основного ЦИКЛА, можно подключиться к pre_get_posts событию. Например, вам захотелось включить пользовательские типы записей в результаты поиска:

Если вы хотите добавить дополнительный HTML тег в <HEAD> часть страницы, вы можете подключиться к wp_head хуку:

Дополнительные параметры

Как add_action() так и add_filter() принимают два дополнительных параметра, для приоритета callback-функции, а также для ряда аргументов, которые будут переданы в callback-функцию.

Приоритет

Приоритет определяет, когда callback-функция будет выполняться по отношению к другим callback-функциям, связанных с данным хуком.

Функция с приоритетом 11 будет запускаться после функции с приоритетом 10; и функция с приоритетом 9 будет запускаться раньше, чем функция с приоритетом 10. Любое положительное целое число допустимо, а значение по умолчанию равно 10.

Например, следующие callback-функции зарегистрированы к init хуку, но с разными приоритетами:

Первая функция для запуска будет run_me_early(),  затем run_me_normal() и наконец, последней будет запущена run_me_late().

Если две callback-функции повешены на один хук с одинаковым приоритетом, то они будут работать в том порядке, в каком были зарегистрированы на этот хук.

Количество аргументов

Иногда необходимо для callback-функции получить некоторые дополнительные данные, относящиеся к функции, на которую мы цепляемся.

Например, когда WordPress сохраняет запись и запускает save_post событие, он передает два параметра в callback-функцию: идентификатор записи и саму запись:

Таким образом, когда callback-функция регистрируется для save_post, она может указать, что хочет получить эти два аргумента

… А потом она может зарегистрировать аргументы в определении функции:

Навигация по разделам:

2 комментария

  1. Алиса

    Ненужная статья, где список экшенов?

    Ответить

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *