Досліджуємо фільтри в wordpress вступна частина, cms і движки для сайтів
На сьогоднішній день WordPress - одна з найпопулярніших систем управління контентом в світі. Одна з причин, завдяки яким вона заслужила таку популярність, є можливість швидкого розширення функціоналу. У цій серії статей ми розповімо про фільтри - одним з кращих способів точного налаштування WordPress.
В основі цього способу лежать хукі - фільтри і дії WordPress. Без них ми не зможемо скористатися розширюваністю WordPress в повній мірі. У цій серії статей ми зупинимося на фільтрах для WP - одному з кращих методів настройки для цієї CMS. Серія складається з семи частин. У них все наше увагу ми зосередимо на наступному:- визначимо поняття WordPress -фільтра;
- розглянемо методи їх впровадження в систему;
- наведемо приклади використання (в статті, яку ви Новомосковскете зараз);
- вивчимо 50 WordPress - фільтрів (по десять у кожній статті) з прикладами;
- і напишемо підсумкову статтю, в якій резюмуємо проведену роботу.
Є буквально сотні WordPress -фільтрів в ядрі і ці 50 прикладів тільки мала частина з них (близько 10%), так що ви самі можете додати щось з того списку і запропонувати приклади використання нових фільтрів.
У будь-якому випадку, час для введення в WordPress -фільтри настав. Давайте почнемо!
Що таке WordPress - фільтр
У Кодексі WordPress фільтрам дано таке визначення:
Фільтри використовуються як проміжна ланка між базою даних і браузером. Зазвичай введення і виведення даних в WordPress проходить, як мінімум, через один фільтр. За замовчуванням в WordPress вже працює фільтрація, але, за допомогою плагінів, ви можете додати свої фільтри.
Отже, фільтр це функція на php. яка записується в стек викликів вбудованої системи фільтрів WordPress. Але в собі вона може містити сторонні функції і інші конструкції. Фільтр є одним з двох видів хуков (hooks) в WordPress. Другий - дія (action), але це предмет для іншої серії статей.
Можливо, ця тема здасться вам складною, але фільтри (як і дії) дуже легко зрозуміти. Вначале моего знакомства с этими понятиями мне самому показалось все довольно сложным и запутанным, но, увидев, насколько они просты, я познакомился с сотнями фильтров и действий, просто изучая кодекс Wordpress или копаясь в исходном коде. Безумовно, вам також варто дізнатися про сотні фільтрів. Але для початку ви повинні навчитися їх використовувати.
Використовуємо фільтри в WordPress
Використовувати фільтри в WordPress. як я вже сказав, досить легко. Деякі основні функції варто вивчити і дізнатися про те, що робить кожен фільтр. Варто визнати, що досить важко вивчити функціонал всіх фільтрів відразу, але цього і не варто робити. Ви познайомитеся з ними в процесі роботи, в міру необхідності.
У цій статті ми збираємося виконати чотири речі:- Створимо функцію фільтру;
- Зробити з неї хук;
- Прибрати функцію з фільтра;
Створюємо функцію і прикріплюємо її до фільтру
Для того щоб пограти з даними, які ми отримаємо з фільтра, необхідно створити функцію, яка визначить, які дії вона буде виконувати з даними і потім підключити її до фільтру.
Давайте припустимо, що ми будемо писати плагін для видалення голосних в заголовках публікацій. Замість того щоб писати «видалити голосні в моїх постах», ми пишемо «підключити функцію видалення голосних з заголовків моїх публікацій до фільтру».
Складно? Насправді ні. В приведенном ниже примере, мы напишем код функции, которая удаляет гласные во всем тексте:
Функція бере рядок заголовка $ title. удаляет гласные и возвращает строку. Досить просто, вірно? Тепер стрибнемо на рівень вище, зробимо хук, і причепимо його до фільтру:
- $ Tag (обов'язковий параметр) - ім'я фільтра;
- $ Function_to_add (обов'язковий параметр) - ім'я функції для хука;
- $priority (опция ) – Целое число для определения момента исполнения функции. За замовчуванням дорівнює 10: Функція спрацює раніше, якщо ви знизите значення, і пізніше, якщо ви підвищите його;
- $ Accepted_args (опція) - Значення, потрібне щоб визначити кількість аргументів, які пропускає фільтр. Значення за замовчуванням равно1.
видаляємо фільтр
Звичайно ж, ми також можемо прибрати функцію, прикріплену до фільтру. Для этого используем функцию remove_filter(). І дивимося, як вона працює:
- $ Tag (обов'язковий параметр) - ім'я фільтра;
- $ Function_to_remove (обов'язковий параметр) - ім'я функції для видалення;
- $ Priority (опція) - пріоритет функції (визначено при першому підключенні функції).
Ще одна функція, remove_all_filters (). у якій всього лише два параметра ($ tag і $ priority), в яких зазначаються ім'я функції і пріоритет. Имя функции говорит само за себя. Вона відключає всі функції, причеплені до фільтру.
Створюємо свій власний фільтр
Хотите знать, как создаются фильтры? Для цього існує спеціальна функція apply_filters (). находящаяся в ядре. Звичайно ж, її можна використовувати і поза ядра, і це означає те, що ми можемо створювати фільтри всередині наших плагінів.
- $ Tag (обов'язковий параметр) - ім'я прив'язуємося функції;
- $ Value (обов'язковий параметр) - значення, яке буде змінюватися функцією, підключеної до фільтру через add_filter ();
- $var1, $var2 и так далее (опционально ) – параметры фильтра (столько, сколько потребуется). Функція фільтра може використовувати ці параметри, але вони не зможуть бути повернуті функціями.
Подумаємо над таким прикладом: Уявіть, що ви пишете функцію, яка повертає тільки відому цитату Пітера Гріффіна:
Якщо ви хочете дати можливість користувачеві відфільтрувати цю цитату (не чіпаючи код вашого плагіна), вам потрібно використовувати функцію apply_filters () наступним чином:
Таким чином, інший розробник зможе використовувати ваш плагін і обробити дані вашої функції як в цьому прикладі:
Тепер, кожен раз, коли буде викликана функція peter_griffin_quote (). цитата Пітера буде злегка видозмінюватися, при цьому код плагіна залишиться незмінним. Відмінно!
висновок
Чим більше ви працюєте з фільтрами, тим веселіше працюється. Є сотні фільтрів, і, вивчаючи їх, ви кожен раз підходите на один крок ближче до того, щоб стати WordPress - гуру. У наступній частині цієї серії статей ми збираємося розповісти про 10 WordPress - фільтрах:
- login_errors;
- comment_post_redirect;
- body_class;
- locale;
- sanitize_user;
- the_content;
- the_password_form;
- the_terms;
- wp_mail_from.
І якщо вам сподобалося те, що ви Новомосковскете в цій статті, не забудьте поділитися нею!
Побачимося на наступному уроці!
Переклад статті "50 Filters of WordPress: An Introduction to Filters" був підготовлений дружною командою проекту Сайтобудування від А до Я.