
Хуки в WordPress
Продовжуючи серію статей, за написанням плагінів WordPress хочу показати ще кілька корисних фрагментів коду.
Починаємо, як і у попередніх статтях. Створюємо файл у папці з плагінами та називаємо його mytestplugin.php. У створений файл додаємо код:
1 2 3 4 5 6 7 8 9 10 | <?php /* Plugin Name: Назва плагіну Plugin URI: https://страница_с_описанием_плагина_и_его_обновлений Description: Короткий опис плагіну. Version: Номер версії плагіну, наприклад: 1.0 Author: Ім'я автору плагіну Author URI: https://сторінка_автору_плагіну */ ?> |
Зараз ми вставили той мінімум, який потрібен для встановлення та активації плагіна, далі часто після розробки необхідно подумати про ліцензію на нього. Багато розробників використовують ліцензію GPL або подібну до неї. Для опису ліцензії додаємо наступні рядки у файл плагіна:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php /* Copyright РІК ІМ'Я_АВТОРУ_ПЛАГІНУ (email: E-MAIL_АВТОРУ) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ ?> |
Переходимо до програмування плагінів та основних важливих понять.
Розглянемо основну концепцію розробки плагінів, яка працює на основі зачіпок або їх ще називають хуками (hook). Принцип дії хуків дуже простий, кожна з елементарних функцій WordPress перед тим як повернути якийсь результат своєї роботи або зробити якусь важливу дію (запит до бази даних, обробка даних, виведення на екран), намагається використати додаткові рядки коду, призначені для неї. у файлах плагінів.
Приклад використання хуків у WordPress
1 2 3 4 5 6 7 | <?php function get_the_title( $id = 0 ) { … … return apply_filters( 'the_title', $title, $post->ID ); //Приклад зачіпки для функції get_the_title(); } ?> |
Приклад використання такої зачіпки у плагіні WordPress
1 2 3 4 5 | <?php … add_filter( 'the_title', 'my_own_function_for_title' ); //Так виглядає реєстрація у файлі плагіна нової функції my_own_function_for_title(); з додатковими інструкціями для зачіпки 'the_title'. … ?> |
Приклад роботи функції my_own_function_for_title()
1 2 3 4 5 6 7 8 9 10 | <?php … /* Так у плагіні може виглядати функція, що змінює заголовки Wordpress. У цьому разі вона змушує виводити кожне слово заголовка з великої літери. */ my_own_function_for_title( $title ){ $title = ucwords($title); return $title; } … ?> |
Усі зачіпки в WordPress поділяються на дві категорії – Фільтри та Дії. (filters та actions відповідно).
Перші це зачіпки фільтри (filters) дійсно призначені для «фільтрування» (зміни) будь яких данних, перед тим, як вони будуть виведені на сторінку або додані для зберігання до бази даних. Це фільтрація спаму, помилок або просто помилкового введення у формах.
Другі це (дії, actions) призначені для заміни різних дій ядра на ваші дії (наприклад, зміни рядка запиту до бази даних), у програмуванні таку зміну дій базового функціоналу ще називають перевантаженням.
В WordPress є свій API для роботи з плагінами та ряд готових зачіпок. Про всі стандартні зачипки можно прочитати в офіційній документації WordPress Plugin API але поки на англійській мові. Доречі якщо ви знайшли місце, де такий хук необхідний, то можно його запропонувати і про те як це зробити написано тут.
Інформація взята з офіційної документації і трохи опрацьована мною ). Успіхів у створенні власних плагінів на WordPress. Слідкуйте за новими статтями.

/*

- Базовый курс по веб-дизайну;
- Верстка сайтов;
- Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
- Разработка сайтов на PHP.