Часті питання (ЧаПи) про хуки та фільтри в WordPress
Будь-яка сторінка сайту на WordPress складається з безлічі функцій, файлів та запитів до бази даних. Ядро CMS WordPress, плагіни та тема працюють у зв’язці, щоб згрупувати елементи сторінки, такі як текст, картинки, скрипти та стилі, щоб у браузері відобразилася підсумкова сторінка.
Як і будь-яка CMS, WordPress не завжди зможе задовольнити всі ваші потреби, і у розробників часто виникає спокуса безпосередньо налаштувати цю популярну CMS — влізти у вихідний код і трохи його підправити. Але такий підхід може створити непотрібні проблеми для функціональності сайту. На щастя, є кращий спосіб: за допомогою хуків, дій та фільтрів, у ВордПрес. Хуки (дії та фільтри) WordPress дозволяють вам «підключатися» до цього процесу в потрібні моменти та запустити свій власний код, не чіпаючи основні файли.
Як ще називають хуки?
Хук, з англійської hook — гачок, тому хуки також відомі як “гачки”, “зачіпки”, “перехоплювачі”, “пастки”, “захоплення”, “перехоплення” і т.д.
Чи користуються програмісти хуками в WordPress?
Якщо ви спробуєте підрахувати хуки в кодовій базі ядра WordPress Core, виявите сотні, якщо не тисячі, хуків. Якщо ще додати сюди теми та плагіни, хуків ви нарахуєте дуже багато. Звідси висновок — програмісти не лише користуються хуками, але й їхнє використання є дуже популярним рішенням.
Які є типи хуків WordPress?
Хуки WordPress поділяються на два основні типи: хуки дій (action
) та хуки фільтрів (filter
). Хуки дій дозволяють вам вставляти власний код у певні точки вашого сайту на ВордПрес, наприклад, коли завантажується сторінка або коли користувач входить до системи. Хуки фільтрів, з іншого боку, дозволяють вам змінювати дані перед їх надсиланням у базу даних або браузер.
Коротше кажучи, хуки дій дозволяють розширювати отриману інформацію (дані), а хуки фільтрів дозволяють змінювати ці дані та повертати користувачеві. Розуміння цих двох типів хуків має вирішальне значення для налаштування та розширення функціональності вашого сайту на WordPress.
У чому різниця між хуками дій та хуками-фільтрами?
Основна відмінність між хуками дій та хуками-фільтрами полягає в їхньому призначенні. Хуки дій використовуються для вставки коду користувача в певні моменти виконання ВордПрес, а хуки фільтрів використовуються для зміни даних перед їх збереженням у базі даних або відображенням користувачеві. Інакше кажучи, перехоплювачі дій пов’язані з синхронізацією, а перехоплювачі фільтрів — з маніпулюванням даними.
Як створити свій хук дій у WordPress?
Створення користувацького хука дії в WordPress складається з двох кроків. По-перше, вам потрібно визначити хук у вашій темі або плагіні за допомогою функції do_action()
. Ця функція приймає два параметри: ім’я перехоплювача дії та будь-які додаткові аргументи. По-друге, запустити цей хук, використовуючи функцію add_action()
. Ця функція приймає три параметри: ім’я хука дії, функцію, що додається, та пріоритет цієї функції.
Як я можу змінити дані з допомогою фільтрів у WordPress?
Хуки фільтрів WordPress дозволяють змінювати дані до того, як вони будуть збережені в базі даних або відображені користувачеві. Щоб використовувати фільтр зачіпку, вам потрібно додати функцію до одного з існуючих фільтрів у коді, за допомогою функції add_filter()
. Ця функція приймає такі самі параметри, як і функція add_action()
. Зачіпка фільтр повинна приймати дані для фільтрації в якості параметру, змінювати їх, а потім повертати.
Як видалити функцію з хука WordPress?
Щоб видалити функцію з хука в ВордПрес, можна використовувати функцію remove_action()
або remove_filter()
. Ці функції приймають такі самі параметри, як і відповідні їм функції додавання: ім’я зачіпки і функцію, що видаляється. Зверніть увагу, що ви можете видалити функцію з перехоплювача, тільки якщо її було додано з ідентифікованою (існуючою) назвою функції зворотного виклику (callback
).
Чи можу я додати кілька функцій в той самий хук?
Так, ви можете додати кілька функцій в один і той же хук WordPress. Кожна функція буде виконуватися в тому порядку, в якому вони були додані, якщо ви явно не вкажете їх пріоритет. Параметр Priority у функціях add_action()
та add_filter()
визначає порядок виконання функцій, при цьому менші номери відповідають більш ранньому виконанню.
Які найпоширеніші варіанти використання хуків WordPress?
Хуки WordPress використовуються для різних цілей: від налаштування зовнішнього вигляду вашого сайту до розширення його функціональності. Наприклад, ви можете використовувати перехоплювачі дій для додавання користувацькі метатеги в заголовки HTML-документа або для вставки коду відстеження (аналітики) у футер сайту. Хуки фільтрів можна використовувати для налаштування контенту ваших постів, наприклад, шляхом автоматичного додавання повідомлення про авторські права в кінці кожної публікації. Варіантів використання зачіпок у ВордПрес — величезна кількість.
Як знайти доступні (наявні) хуки в WordPress?
Є кілька способів знайти доступні хуки WordPress. Один із способів — переглянути Кодекс WordPress, де наведено повний список доступних перехоплювачів. Інший спосіб — використовувати відповідні плагіни, які відображають усі хуки дій та хуки фільтрів, що використовуються на поточній сторінці.
Чи можу я створювати власні хуки в WordPress?
Так, ви можете створювати власні хуки в WordPress. Це часто робиться при розробці тем і плагінів, щоб дозволити іншим розробникам розширювати чи змінювати ваш код. Щоб створити власний хук, вам просто потрібно викликати функцію do_action()
або apply_filters()
з унікальним ім’ям для вашого хука.
Найкращі практики використання хуків у WordPress
Деякі рекомендації щодо використання хуків у WordPress включають:
- використання унікальних імен для хуків, щоб уникнути конфліктів з іншими плагінами або темами;
- завжди перевіряти, чи існує хук перед тим, як додавати до нього функцію;
- використання функцій
__return_true
та__return_false
для перехоплювачів фільтрів, для яких потрібне логічне (boolean
) значення; - видаляти функції, які ви додавали до хуків, коли вони більше не потрібні.
Дякую за увагу!