Функции WordPress add_filter и add_action, основы.

Опубликовано: 2021-08-24

Раскрытие информации: этот пост содержит партнерские ссылки. Я могу получить компенсацию, когда вы переходите по ссылкам на товары в этом посте. Чтобы ознакомиться с моей Политикой в ​​отношении рекламы, посетите эту страницу . Спасибо за чтение!

Содержание

  • Что такое функции WordPress add_filter и add_action?
  • Итак, что же такое «хук» в WordPress?
  • В чем разница между хуками, фильтрами и действиями?
  • В чем разница между do_action и add_action в WordPress?
  • В чем разница между хуками действий и хуками фильтров?
  • Что делают фильтры в WordPress?
  • Что делают действия в WordPress?
  • Могу ли я использовать add_action перед add_filter при настройке плагина WordPress?
  • Так в чем же реальная разница между хуками add_filter и add_action в WordPress?

Что такое функции WordPress add_filter и add_action?

Вы когда-нибудь получали плагин или тему, которые были бы идеальными, если бы вы могли просто внести в них одну или две настройки? Однако эти две настройки потребуют от вас лишь добавления небольшого количества кода, возможно, даже шорткода.

Но прежде чем вы это сделаете, вам нужно понять основные понятия add_filter и add_action, различия и то, как они работают в WordPress, прежде чем вы превратите почти идеально закодированный плагин или тему в полный беспорядок.

«add_action» в WordPress — это то, что вы используете для создания «крючка» триггера. Когда что-то случается, делай что-нибудь другое.

«add_filter» используется для «перехвата» данных, т.е. изменения/замены. Например, там, где есть [какой-то код], измените его на какой-то другой расширенный код.

«Хук» — это «функция» или «метод» для определенного фильтра или действия. Подробнее о «крючках» ниже.

WordPress предлагает хуки-фильтры, позволяющие плагинам изменять различные типы внутренних данных во время работы. Плагин может изменять данные, привязывая обратный вызов к хуку фильтра. Когда фильтр применяется позже, каждый связанный обратный вызов выполняется в порядке приоритета, и ему предоставляется возможность изменить значение, возвращая новое значение.

  • Действия — это те функции PHP, которые выполняют вывод.
  • Фильтры — это те функции PHP, которые возвращают результат.

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

Итак, что же такое «хук» в WordPress?

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

Есть два типа хуков: действия и фильтры. Чтобы использовать любой из них, вам нужно написать пользовательскую функцию, известную как « Обратный вызов », а затем зарегистрировать ее с помощью хука WordPress для определенного действия или фильтра. Источник : WordPress.org .

В чем разница между хуками, фильтрами и действиями?

Как упоминалось выше, «хуки» — это, по сути, собирательное название фильтров и действий. Оба предназначены для изменения нормального поведения функций.

Если говорить с программной точки зрения, большой разницы нет, как видно из того факта, что в исходном коде WordPress добавление «действия» равнозначно добавлению «фильтра».

Разница в том, как они используются. Вы используете «действие», чтобы полностью изменить поведение функции или добавить что-то к существующей функции.

Вы используете «фильтр», чтобы изменить результат функции или переменной.

В чем разница между do_action и add_action в WordPress?

«do_action» регистрирует «ловушку действия», а «add_action» добавляет функцию обратного вызова к зарегистрированной ловушке.

В чем разница между хуками действий и хуками фильтров?

Хуки действия

«Крючки действий» предназначены для использования, когда ядро ​​WordPress, какой-либо плагин или тема дают вам возможность вставить свой код в определенный момент внутри них для выполнения определенной задачи или «действия».

Хуки фильтра

«Filter Hooks» ведут себя очень похоже на «Action Hooks», но их предполагаемое использование состоит в том, чтобы получить значение и, возможно, вернуть измененную версию значения.

«Filter Hook» также можно использовать точно так же, как «Action Hook», т.е. для изменения глобальной переменной или генерации некоторого HTML, предполагая, что это то, что вам нужно сделать, когда вызывается ловушка.

Что делают фильтры в WordPress?

«Фильтр» принимает полученную информацию, модифицирует ее и возвращает. Другими словами, он что-то фильтрует и передает обратно на хук для дальнейшего использования.

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

Что делают действия в WordPress?

«Действие» берет полученную информацию, выполняет любые инструкции, указанные в его коде, и ничего не возвращает. По сути, он воздействует на что-то, а затем завершает работу, ничего не возвращая вызывающему хуку.

Действие прерывает поток кода, чтобы что-то сделать, а затем возвращается к обычному потоку без каких-либо изменений.

Итак, если «фильтры» — это наборы параметров или инструкций, «действия» — это выполнение инструкций.

Могу ли я использовать add_action перед add_filter при настройке плагина WordPress?

По сути, не имеет значения, в каком порядке вы используете add_action() и add_filter().

Имеет значение порядок, в котором вызываются соответствующие функции do_action() и apply_filters().

Таким образом, если, например, «apply_filters» ('wp_insert_post_data') выполняется до «do_action» ('save_post'), то это не сработает. Вам придется подумать о другом способе получить желаемые результаты.

Так в чем реальная разница между хуками add_filter и add_action в WordPress?

На самом деле «Filter Hooks» — это в значительной степени надмножество «Action Hooks». «Filter Hooks» могут делать все то же, что и «Action Hooks», и даже немного больше. Хотя разработчик не несет ответственности за возврат значения с помощью «перехватчика действия», который он делает с помощью «перехватчика фильтра».

«Фильтры-хуки» в основном определяют параметры задачи, а «Действия-хуки» выполняют задачи. Для получения дополнительной информации о различиях между хуками «add_filter» и «add_action», ознакомьтесь с этой официальной документацией WordPress в разделе для разработчиков на WordPress.org.