Як використовувати WordPress Дія гачки в темі налаштування
Дитячі теми WordPress надають відносно простий спосіб налаштування зовнішнього вигляду теми. Якщо параметри теми не надають адекватних варіантів дизайну, ви можете просто додати нове правило до файлу стилів дочірніх стилів, що називається style.css. Але що відбувається, коли ви також хочете змінюйте функціональність теми? Це один із випадків, коли до вас звертаються дії WordPress.
WordPress став настільки популярним частково через високу налаштування. Ядро WordPress завантажується з різними гачками, які дозволяють розробникам змінювати або підвищувати функціональність за замовчуванням. Більше того, нам дозволено включати спеціальні гачки в наших темах і плагінах допомогти іншим розробникам легко налаштувати наш код відповідно до їхніх потреб.
Про гачки WordPress
WordPress гачки працюють дещо схоже на реальні гачки в тому сенсі, що ви можете зловити рибу ви хочете в потрібному місці, якщо ви правильно використовувати їх \ t.
Ти можеш видалити функцію, що уловлюється (наприклад, ви можете видалити адміністративну панель WordPress для користувачів низького рівня) залиште його недоторканим і посилити його з вашим власним функціоналом (наприклад, можна додавати до теми більше меню або областей віджетів), або ви можете перекрийте його (наприклад, ви можете змінити поведінку основної функції).
У WordPress два різні види гачків: дії і фільтри. У цьому пості ми розглянемо, як ми можемо використовуйте гаки дій у налаштуванні теми.
Як WordPress гачки роботи
Використовувати дуже просту мову, дії вкажіть це щось сталося під час життєвого циклу сторінки WordPress: завантажені певні частини сайту, налаштовані певні параметри або налаштування, ініціалізовані плагіни або віджети тощо.
Фільтри відрізняються від дії за своєю природою. Вони звикли передавати дані, і змінювати, керувати або перехоплення перед тим, як відобразити його на екрані або зберегти дані користувача в базі даних.
На кожному важливому орієнтирі життєвого циклу сторінки WordPress є або дії або a фільтр гачок, на який ми можемо додайте наш спеціальний код, щоб змінити поведінку за умовчанням до наших потреб.
Деякі дії та фільтри, що виконуються під час запиту, залежать від того, яку сторінку запитував користувальницький агент: наприклад, у запиті одного повідомлення доступні гачки, пов'язані з окремими повідомленнями, але гачки, пов'язані з іншими частинами сайту (наприклад, область адміністрування) не є.
Знайдіть гачки дій
Довідник дій Кодексу WordPress надає детальний огляд дій, які виконуються через різні запити. Важливо те, що якщо ми хочемо виконати завдання, яке нам потрібно гачок у потрібному місці, не до або після цього, інакше дія не буде завершена.
Так, наприклад, якщо ми хочемо додайте код Google Analytics до сайту ми потребуємо підключіть наші дії прямо перед завантаженням нижнього колонтитула.
Якщо говорити про налаштування теми, то гаки дій можуть надходити з двох різних місць: від WordPress Core і сама тема. Є теми, які взагалі не мають гачків, але інші надають розробникам декілька чи багато - це завжди вибір автора теми. За замовчуванням двадцять п'ятнадцять Тема має тільки один гачок дії для настройки колонтитула під назвою "twentyfifteen_credits".
Якщо ви хочете переглядати вихідний код, ви також можете легко знайти гачки дій. Гачки дій додаються до коду з функцією WordPress do_action ().
Якщо ви виконуєте швидкий пошук для виразу 'do_action' у більш просунутому редакторі коду - як я зробив у Eclipse нижче - ви можете побачити список тих місць, де ви можете підключити користувальницькі функції до ядра. Я шукав у / wp-includes / , але ви також можете виконати пошук / wp-admin / папка, яка містить гачки дій, пов’язані з інформаційною панеллю WordPress (область адміністратора).
Добре, що назви гачків дій, як правило, досить зрозумілі, але є зазвичай хороший коментар всередині коду це може дати вам більше знань, чи є дана гачка дії добре для тієї причини, чому ви хочете її використовувати.
Наприклад, коментар коду перед гачком дій "widgets_init" говорить, що він “пожежі після реєстрації всіх стандартних віджетів WordPress”. Якщо ви подивитеся на код перед цим гачком дій, ви можете знайти всі ініціалізації віджетів WP за замовчуванням перед ним - так що ви можете бути впевнені, що коментар не лежить, і якщо ви хочете зареєструвати свій власний віджет, це буде правильне місце.
У багатьох випадках вихідний код надає нам набагато більше інформації, ніж Codex, тому може бути гарною ідеєю, щоб дізнатися, як швидко орієнтуватися в ньому.
Додайте власні дії
Якщо ви хочете додати свою власну дію, вам потрібно створити спеціальну функцію і прив'яжіть цю функцію до певного гачка дії за допомогою функції addнал () WordPress. Звичайні дії, додані за допомогою функції add_action (), зазвичай спрацьовує на місці коли ядро викликає відповідну функцію do_action ().
Подивимося простий приклад.
Як знайти дію гачок вам потрібно
Припустимо, ви хочете додати свій власний значок на ваш сайт. По-перше, потрібно знайти правильний крючок дії, з яким можна прив'язати власну функціональність.
Давайте подумаємо. Якщо ви хочете додати favicon до звичайної HTML-сторінки, де б ви її помістили? Звичайно, ви повинні розмістити його всередині
розділ HTML-файлу з наступною розміткою:Отже, треба діяти гачок пов'язані з завантаженням розділ.
(1) Відкрийте посилання "Дія" і подивіться, що вона може запропонувати. Нам пощастило, як якщо б ми переглядали дії, ми можемо знайти тільки один, wp_head, який на основі його імені має можливість бути пов'язаним з завантаженням
розділ.(2) Звичайно, давайте перевірте документацію в кодексі WordPress. Кодекс рекомендує це “Ви користуєтеся цим гачком, використовуючи функцію ехо виходу у браузер”, так що зараз, здається, вона ідеальна для нас. Але давайте перевіримо його у вихідному коді.
(3) Оскільки цей гачок не пов'язаний з адміністративною областю, нам знадобиться запустити пошук у / wp-includes / папки. Якщо ми шукаємо слово "wp-head", ми отримаємо багато результатів, оскільки ця конкретна дія використовується WP Core багато разів.
Потрібно шукати місце, де вона визначається, тому шукайте вираз do_action ('wp_head'). Зауважте, що ми не завершили круглі дужки, тому що ми не можемо бути впевнені, що ця дія має параметри чи ні.
Eclipse повертає лише один результат, який можна знайти всередині /wp-includes/general-template.php файл. Коментар перед визначенням крюка дії говорить, що він “друкує скрипти або дані в голові тега на передньому кінці”, тепер ми можемо бути впевнені в цьому wp_head це потрібний гачок дії.
Перевірка параметрів
Коли ви додаєте власні дії, вам також потрібно бути впевнені, що гачок, який ви хочете використовувати, приймає параметри чи ні. Ви можете легко знайти це, переглянувши функцію do_action ().
Синтаксис функції do_action () такий:
do_action ('name_of_action' [, $ parameter1, $ parameter2,…])
Потрібно лише назва дії, параметри є необов'язковими. Якщо ви знайдете аргументи у відповідному виклику функції do_action (), вам потрібно включіть їх у декларацію створеної користувачем функції.
Якщо ви не знайдете жодного, то ваша спеціальна функція повинна працювати без аргументів. У визначенні do_action () гачка дії wp_head немає параметрів.
Давайте порівняємо його з гаком дій, який приймає параметр. Гачок дії, який називається "wp_register_sidebar_widget", приймає один параметр, який ви завжди повинні переходити до спеціальної функції, яку ви прив'язуєте до гачка.
Давайте побачимо різницю у синтаксисі do_action () двох випадків:
do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ віджет);
У першому випадку параметр не існує, тому користувальницька функція використовуватиме наступний синтаксис:
функція my_function_without_parameters () …
У другому випадку є один параметр, який ви завжди повинні передати як аргумент у декларацію вашої користувацької функції:
Функція my_function_with_parameters ($ widget) …
Як підключити вашу користувацьку функцію в. \ T
Тепер ми знаємо все, що нам потрібно. Давайте створимо нашу спеціальну функцію, яка буде відображати значок на нашому сайті.
Спочатку створіть нову функцію без будь-яких аргументів, а потім пов'яжіть її з крюком дії wp_head за допомогою функції add_action () WordPress.
функція custom_add_favicon () echo ''; add_action ('wp_head', 'custom_add_favicon');
Тобі потрібно передати ім'я гачка дії до функції add_action () спочатку як аргумент, тоді потрібно додати назву користувацької функції.
Це два необхідні параметри add_action (). Він також має два додаткові параметри, пріоритет і прийняті аргументи. Давайте подивимося, як їх використовувати.
Визначення пріоритетів
Це відбувається у багатьох випадках, коли до одного крюка прив'язано більше однієї дії. Тому який буде виконаний першим? Тут ми можемо використовувати Необов'язковий параметр $: пріоритет функції add_action ().
Додаємо пріоритет як додатне ціле число, значення за замовчуванням 10. Якщо ми хочемо, щоб дія виконувалася рано, ми надаємо їй більш низьке значення, якщо ми хочемо, щоб вона була виконана пізніше, ми надаємо йому більш високе значення.
Отже, якщо ми вважаємо, що favicon має бути там рано, ми можемо покращити попередній виклик add_action () наступним чином:
add_action ('wp_head', 'custom_add_favicon', 5);
Зверніть увагу, що пріоритети завжди повинні бути встановлюється відносно інших користувацьких функцій які використовують один і той же гачок дії.
Додайте кількість прийнятих аргументів
Ви повинні додати кількість прийнятих аргументів у випадку, якщо ви використовуєте гачок дій, який приймає параметри. Давайте розглянемо приклад, який ми використовували раніше.
Дія гачка "wp_register_sidebar_widget" приймає один параметр, тому, коли ми пов'язуємо нашу спеціальну функцію з цим гаком, ми також повинні включити це як аргумент, коли ми викликаємо функцію add_action ().
Наш код у цьому випадку буде виглядати так:
function my_sidebar_widget_function ($ widget) // Ваш код add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1);
Зверніть увагу, що ми повинні також додайте пріоритет (ми вибрали типово 10 тут), щоб переконатися, що WordPress знає, що означає кожен параметр. Якщо ми опустили пріоритет, WordPress може припустити, що 1 є пріоритетом що не відповідає дійсності, оскільки вказує кількість прийнятих аргументів.
Висновок
Ви можете зробити багато експериментів з гачками дії в налаштуванні теми. Наприклад, ви можете додати власні сценарії (JS) і стилі (CSS) за допомогою крюка дії wp_enqueue_scripts або коду Google Analytics за допомогою гачка дій wp_footer.
Ви не тільки можете додайте свої власні дії, але ви також можете видалити повні функціональні можливості з ядра WordPress з використанням функції remove_action (), що використовує ту ж логіку, що і add_action ().
Якщо ви є автором теми, і ви хочете зробити розширювану тему, це може бути гарною ідеєю додайте свої власні крючки дій до відповідних файлів шаблонів з функцією do_action ().
Якщо ви хочете зробити це, Ретельно продумайте параметри, які інші розробники хто буде використовувати вашу тему доведеться передати як аргументи коли вони хочуть підключити свої спеціальні функції.
При розробці розташування кнопок користувальницьких дій для вашої теми не забувайте про це не має особливого сенсу включити власні теми гачки на тих же місцях, де WordPress Core сама має свої гачки.