Что такое хуки WordPress? Как действия и фильтры помогают расширить функциональность?

Опубликовано: 2018-06-13
WordPress Hooks | LearnWoo

Последнее обновление — 9 октября 2020 г.

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

Но что такое хуки?

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

Крючки в общих чертах соединяют одну вещь с другой. В терминологии WordPress он перехватывает (соединяет) определяемый пользователем код с существующим кодом ядра WordPress.

Давайте просто получить это прямо.

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

Типы крючков

Есть два типа хуков:

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

По сути, хуки сами по себе являются предопределенными функциями. Следовательно, два типа функций, связанных с хуками:

  1. Функции действий . Эти функции полезны в случаях публикации блога, загрузки страницы и т. д.
    Ниже приведены некоторые из функций действия:

    • add_action()
    • сделал_действие()
    • выполнение_действия()
    • do_action()
    • do_action_ref_array()
    • has_action()
    • удалить_действие()
    • удалить_все_действия()
  2. Функции фильтра. Каждая функция фильтра возвращает некоторое значение и заменяет его данными WordPress по умолчанию.
    Функции фильтра включают в себя следующее:

    • добавить_фильтр()
    • применить_фильтры()
    • apply_filters_ref_array()
    • текущий_фильтр()
    • выполнение_фильтра()
    • has_filter()
    • удалить_все_фильтры()
    • удалить_фильтр()

Инфографика

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

WordPress Hooks | Info-graphic on how WordPress Hooks work
Инфографика о том, как работают хуки WordPress

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

Как выглядит крючок?

Типичный хук Action имеет следующую форму:

 add_action('hook', 'your_custom_function_name', [priority], [accepted_parameters]);
функция your_custom_function_name()
{
   //Ваш пользовательский код
}

Где хук — это имя хука, your_custom_function_name — это имя функции с вашим пользовательским кодом, необязательным параметром приоритета , который указывает, как должен выполняться хук, принятыми параметрами , указывающими дополнительные параметры, и пользовательский код. вызов функции ( add_action() ) может быть ниже или выше фрагмента кода.

Хук Filter имеет следующую форму:

 add_filter('фильтр', 'имя_вашей_пользовательской_функции', 'приоритет', 'принятые_аргументы');
функция your_custom_function_name($variable)
{
   //Ваш пользовательский код
   возвращаться;
}

Где add_filter() один функций хука Filter, filter — это имя фильтра, который вы собираетесь использовать, your_custom_function_name — это имя вашей пользовательской функции, параметр priority указывает порядок выполнения хука, accept_args указывает аргументы, которые будут переданы, а пользовательский код с обязательным возвращаемым значением.

Как и в случае с WordPress, для WooCommerce также доступны хуки. Эти хуки широко используются для разработки плагинов, тем и настройки процесса оформления заказа WooCommerce.
Прочтите WooCommerce Hooks: Действия и фильтры в документации WooCommerce, чтобы подробно разобраться в крючках WooCommerce.

Демонстрация

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

Хук действия и функция

 //Добавление хука Action
функция my_action_hook() {
echo "<p align='center'>Это пример хука действия</p>";
}
add_action('get_header', 'my_action_hook');

В приведенном выше фрагменте кода «my_action_hook» — это имя пользовательской функции, «add_action» — одна из функций действия, а «get_header» используется для настройки заголовка шаблона. В данном фрагменте кода мы отображаем текст «Это демонстрация хука действия» в разделе заголовка веб-сайта.

Образец снимка экрана, показывающий примененные изменения фрагмента кода, показан ниже.

WordPress Hooks | Action hook example
Пример хука действия

Крюк фильтра и функция

 //Добавление хука фильтра
add_filter('woocommerce_get_price_html','my_filter_hook');
функция my_filter_hook ($ цена) {
return 'Всего за '.$цену;
}

В приведенном выше фрагменте кода «woocommerce_get_price_html» — это хук WooCommerce для получения цены продукта, «my_filter_hook» — это имя определяемого пользователем фильтра, а «$price» — определяемая пользователем переменная. Фрагмент кода просто добавляет префикс «Просто» к цене товара.

На следующем снимке экрана показано, как фрагмент кода влияет на наш магазин WooCommerce.

WordPress Hooks | Filter hook example
Пример хука фильтра

Это всего лишь простой пример, с помощью хуков можно добиться многого.

Как действия и фильтры помогают расширить функциональность?

  1. Основное преимущество использования хуков заключается в том, что они помогают настроить основной код WordPress.
  2. Любые изменения в разработке можно тщательно отслеживать, поскольку модификация минимальна, а не повторяется в коде несколько раз.
  3. Разработка новых плагинов становится намного проще благодаря методу проб и испытаний.
  4. Для разработки тем можно создавать дочерние темы и экспериментировать с хуками, не затрагивая родительскую тему.
  5. Это простое и удобное предложение WordPress с понятной структурой и подробной документацией для любой справки.
  6. Поддерживает WooCommerce, самый популярный плагин для электронной коммерции WordPress. Плагины ценообразования WooCommerce широко изменяют цены на продукты, расчеты цен и предлагают динамическое ценообразование и скидки с помощью крючков WooCommerce. Детали заказа, информацию о продукте, информацию о доставке среди вещей можно прослушивать с помощью пользовательских крючков.

Заключительные комментарии

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

Ознакомьтесь с нашими статьями о настройке WooCommerce, чтобы получить советы по настройке вашего магазина WooCommerce.

Или продолжайте изучать LearnWoo, чтобы найти еще больше замечательных статей.