Перейти к содержимому

4. Хуки (Hooks)

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

Существует два типа хуков: Actions (События) и Filters (Фильтры).

Экшены позволяют выполнять код в определенный момент загрузки страницы или выполнения процесса (например, при сохранении поста).

Принцип работы: “Когда происходит событие X, выполни функцию Y”.

sequenceDiagram
participant Core as Ядро WordPress
participant Hook as do_action('wp_head')
participant Custom as Ваша функция
Core->>Hook: Достигнута точка в <head>
Hook->>Custom: Вызов всех привязанных функций
Custom-->>Hook: Выполнение (например, вывод мета-тега)
Hook->>Core: Продолжение загрузки

Добавим скрипт в подвал сайта.

function my_custom_footer_text() {
echo '<p>Сделано на курсе Яши</p>';
}
add_action('wp_footer', 'my_custom_footer_text');

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

Принцип работы: “Возьми переменную, измени её и верни обратно”.

Изменим длину текста в анонсе поста (excerpt).

function my_custom_excerpt_length($length) {
return 20; // Ограничить до 20 слов
}
add_filter('excerpt_length', 'my_custom_excerpt_length');
  1. Документация: Официальный WordPress Code Reference.
  2. Поиск по коду: Если вы используете IDE, ищите вызовы do_action() и apply_filters() в файлах ядра или плагинов.
  3. Плагины для отладки: Query Monitor показывает все хуки, запущенные на текущей странице.

Вы можете указать, в какой очереди выполнится ваша функция, добавив числовой приоритет (по умолчанию 10).

add_action('init', 'my_first_function', 5); // Выполнится раньше
add_action('init', 'my_second_function', 15); // Выполнится позже

Использование хуков делает ваш код чистым, модульным и совместимым с обновлениями системы.

Система хуков WordPress — actions и filters в действии: