Хуки и фильтры в WordPress: где ломают тему и как не зарыть логику
Хук — это точка, куда WordPress разрешает встраивать свой код. Две базовые роли: action запускает действие, filter меняет данные до вывода. Если перепутать их, тема начинает жить своей жизнью: заголовок меняется не там, запросы усложняются, а баги трудно ловятся.
Правило для темы простое: через хуки подключайте побочные действия, через фильтры — только преобразование значения.
— action: подключение скриптов, добавление классов, логирование, сборка блоков
— filter: правка title, excerpt, content, атрибутов изображений, URL
Если нужно вернуть новое значение — это фильтр. Если нужно просто выполнить код — action.
Типовая ошибка в теме — делать лишнюю логику прямо в шаблоне. Вместо этого выносите ее в functions.php или в отдельный модуль и цепляйте через add_action/add_filter. Так шаблон остается читаемым, а поведение можно менять без переписывания разметки. Особенно это полезно для хлебных крошек, мета-данных и кастомных списков записей.
Проверяйте приоритеты, число аргументов и снимаемость через remove_action/remove_filter. Если хук нужен только для одной задачи, держите callback маленьким и именуйте его по смыслу, а не как temp_func_1. Это экономит время, когда через полгода придется искать, почему блок выводится дважды.
Хорошая тема строится не на «магии хуков», а на дисциплине: action для запуска, filter для изменения, минимум логики в шаблоне.
Разработка тем WordPress
@wp_dev_deep_dive_ww
Хуки и фильтры в WordPress: где ломают тему и как не зарыть логику
Этот пост опубликован в Telegram-канале Разработка тем WordPress. Подписаться можно по ссылке: @wp_dev_deep_dive_ww.