Включення власних шаблонів у наші плагіни WordPress
Я вважаю, що одним із найбільш недооцінених аспектів – або, можливо, одним із рідко обговорюваних аспектів розробки користувацьких плагінів – є можливість включати користувацькі шаблони в наші плагіни WordPress.
І, чесно кажучи, я розумію: я досить твердо впевнений у тому, що повинен бути плагін, а що – тема.
Це:
- теми для презентації,
- плагіни – це функціональність.
Якщо я включаю шаблони в плагін, чи не роблю я те саме, що й коли розробники включають функціональні можливості у свої теми?
Як і з багатьма речами в розробці, я думаю, що це залежить. Я маю на увазі те, що я не прихильник додавання великої кількості функцій, які блокують вас у темі. Так само, якщо у вас є плагін, який призначений для демонстрації даних у інтерфейсі та не залежить від теми, тоді це має сенс.
Тому ви повинні бути розсудливими у своїх рішеннях.
Незважаючи на це, існує загальний набір кроків, які ми можемо використовувати, додаючи власні шаблони до наших плагінів WordPress.
І це те, що цей пост покаже.
Якщо ви збираєтеся включати власні шаблони в плагін, я припускаю, що ви використовуєте як одиночний, так і архівний шаблони. Якщо ні, використовуйте лише ті хуки та код, які вам потрібні.
Однак для обох знайте:
Використовуючи ці хуки, ви можете повідомити WordPress, де у вашому плагіні знаходяться власні шаблони.
Упорядкування шаблонів
Для мене зазвичай є каталог шаблонів у моєму плагіні, який розміщується на тому ж рівні, що й каталоги активів, src і постачальника.
Це дозволяє легко дізнатися, де вони знаходяться, і забезпечує послідовний спосіб включення їх у всі плагіни, які ви створили. Зрештою, є що сказати про послідовність умов, які ми використовуємо.
Включаючи шаблони
Якщо у вас є шаблон single-acme.php і archive-acme.php, їх легко включити. І хоча я більше прихильник використання об’єктно-орієнтованого програмування, я покажу, щоб включити ці шаблони за допомогою процедурного коду.
За бажанням цей код легко перетворити на об’єктно-орієнтований код. Крім того, я припускаю, що ви також включаєте це для спеціальних типів публікацій.
Ви завжди можете опустити умовний оператор для спеціального типу публікації, якщо хочете просто включити ці шаблони, але, з мого досвіду, я вважаю, що такі ситуації рідко не використовують спеціальні типи публікацій, але я не знаю вашої ситуації.
Таким чином, ось код.
Визначення хуків
Спочатку нам потрібно визначити гачки. Це відносно просто, оскільки ми будемо використовувати гачки, описані вище.
По- перше, єдиний шаблон :
А потім шаблон архіву :
І тепер ми можемо реалізувати код для кожної з функцій.
Додавання коду
Отже, спочатку ми розглянемо єдиний шаблон :
А тепер шаблон архіву :
Якщо ви приділяли пильну увагу коду, ви знаєте, що мало що відрізняється. Насправді загальний процес можна описати так:
- визначити гачок,
- знайдіть шаблон,
- перевірте власний тип публікації,
- шаблон є, використовуйте його
- інакше використовуйте шаблон за замовчуванням
І це процес як для одиночних, так і для архівних шаблонів.
Написання сумісних шаблонів
І нарешті, і це важливо, особливо якщо ви хочете зробити шаблон якомога агностичнішим, я намагаюся використовувати якомога більше вбудованих тегів шаблону WordPress під час показу вмісту, пов’язаного з плагіном. Це дозволяє розробникам тем легко стилізувати її відповідно до своєї теми.
Ні, ви не зможете вмістити кожну тему, але така природа тем WordPress. Суть полягає в тому, щоб отримати якомога більше роботи з отримання та відтворення даних із шаблону, щоб інтерфейсні розробники могли легко ним керувати.