
Что такое хуки WordPress?
WordPress — наиболее популярная на данный момент система управления содержимым сайта (cms или «движок» сайта), распространяемая свободно и имеющая огромные перспективы для создания сайта любой сложности: от одностраничного сайта-лендинга (landing-page) до Интернет-магазина или большого корпоративного ресурса. Так что же такое хуки WordPress?
Хуки — это способ взаимодействия/изменения одного фрагмента кода с другим фрагментом кода в заранее определенных местах. Они составляют основу взаимодействия плагинов и тем с ядром WordPress, а также широко используются и самим ядром.
Существует 2 типа хуков: экшены и фильтры. Существует способ использования обоих типов хуков, но для этого нужно написать специальную функцию (известную как функция обратного вызова).
Экшены позволяют добавлять данные или изменять способ работы WordPress. Экшены будут выполняться в определенный момент выполнения ядра WordPress, плагинов и тем. Функции обратного вызова для экшенов могут выполнять какую-либо задачу, например, отображать вывод пользователю или вставлять что-либо в базу данных. Функции обратного вызова для экшена не возвращают ничего обратно вызывающему хуку экшена.
Фильтры дают вам возможность изменять данные во время работы ядра WordPress, плагинов и тем. Функции обратного вызова для фильтров принимают переменную, изменяют ее и возвращают. Они предназначены для изолированной работы и никогда не должны иметь побочных эффектов, таких как влияние на глобальные переменные и выходные данные. Фильтры ожидают, что им что-то вернется.
WordPress предоставляет множество хуков, которые можно использовать, а также можно создавать свои собственные, чтобы другие разработчики могли расширять и изменять разрабатываемый плагин или тему.
Основное различие между экшеном и фильтром можно резюмировать следующим образом:
- экшен принимает полученную информацию, что-то с ней делает и ничего не возвращает. Другими словами: он воздействует на что-то, а затем завершает работу, ничего не возвращая вызывающему хуку.
- фильтр берет полученную информацию, каким-то образом ее модифицирует и возвращает. Другими словами: он что-то фильтрует и передает обратно в хук для дальнейшего использования.
Скажем по-другому:
- экшен прерывает поток кода, чтобы что-то сделать, а затем возвращается к нормальному потоку, ничего не изменяя;
- фильтр используется для изменения чего-либо определенным образом, чтобы эта модификация затем использовалась кодом позже.
Продолжение следует… Обо мне тут.