Nearly Headless WordPress Theme: бойлерплейт для швидкого створення “майже headless” тем WordPress

Алекс Станіфорд, WP розробник AffiliateWP, випустив бойлерплейт (заготовку) для створення так званих «майже headless» WordPress тем. Проект заснований на Underpin, Nicholas і AlpineJS. Все це використовується для реалізації сайту, який нагадує додаток. Рендерінг окремих сторінок у цьому випадку відбувається з використанням PHP замість Javascript.

У своєму пості, «Headless WordPress is Overrated: A Case for The Nearly-Headless Web App» («Headless WordPress переоцінений: приклад створення веб-додатку з майже headless інтерфейсом») Алекс описує кілька недоліків підходу «абсолютно headless».

«Одна з проблем – «абсолютно headless» WordPress маршрутизація. В WordPress там багато логіки вбудовані в обробку маршрутів, і в разі безгольового підходу, вам потрібно буде створити щось, щоб впоратися з усім цим в передній частині. Виходить, що ви винайшли колесо, втративши тонну часу на додатковий код. “

“Ще одна проблема з headless WP стає очевидним при спробі використовувати більшість WordPress-плагіни. Вам доведеться переписати купу фрагментів коду знову, щоб плагін працював належним чином “.

Підхід Алекса «майже headless» є продуктом переосмислення парадигми headless WordPress. Алекс хотів зберегти відчуття роботи з додатком, залишивши всі можливості WordPress – як вбудовані в ядро, так і ті, які доступні через систему плагінів.

Тема «Майже headless» використовує AlpineJS для рендерингу, що, за словами Алекса, є легкою, легкою для розуміння структурою, яка «прекрасно взаємодіє з рендерингом на стороні сервера PHP». Тему прив’язано до тегів шаблонів, заповнених відповідями REST у програмі WordPress для вмісту записів. Система використовує сховище сеансів. Це значно зменшує кількість дзвінків REST API і дозволяє сайту швидко працювати.

Майже без голови WordPress Тема: галактика котла для швидкого створення "майже без голови" тем WordPress

Навчальний сайт WP Dev Academy та веб-сайт DesignFrame Solutions базуються на бета-версіях цієї “майже headless” системи. З моменту створення цих сайтів Алекс повністю переписав систему і зробив до неї значні поліпшення. Існує жива демонстрація поточної версії галактики котла на nearly-headless.dev.

Підхід «майже headless» можна порівняти з традиційним безликим підходом з точки зору продуктивності, який здійснюється за допомогою бібліотеки Nicholas, яка включає в себе кешування на боці клієнта і шар маршрутизації для підтримки застосування.

«Nicholas буде завантажувати контент через REST, як це робить сайт headless», – сказав Алекс. – «Тому час навантаження буде таким же, як і у випадку з headless підходом. Насправді, вони функціонують приблизно однаково. Ключовим є те, що Nicholas також зберігає дані в сховищі сесій після відвідування сторінки, і кожного разу, коли ця сторінка запитується знову, вона з’являється миттєво».

«Бойлерплейт – це чистий лист. Ви можете думати про це як _s для “майже headless” підхіду. Всі залежності, скрипти і елементи, необхідні для запуску двигуна, включені в бойлерплейт. Залежності упаковані у редакторі Composer або Node. В результаті ваша тема зможе оновлюватися в міру вдосконалення системи, не переписуючи весь код”, – сказав Алекс.

Алекс планує внести деякі серйозні поліпшення в свій шаблон в майбутньому. Тепер бойлерплейт сумісна з редактором блоків і багатьма плагінами, але вимагає включення режиму сумісності.

«Величезним поліпшенням буде відмова від режиму сумісності для якомога більшої кількості сторінок», – сказав Алекс. “Багато бібліотек блоків, плагінів форм та інших рішень мають конкретні сценарії, які повинні бути завантажені на сторінки. Додаток може не знати про це, і тому деякі плагіни не будуть працювати без включення режиму сумісності. Відмова від режиму сумісності реальна, але мені знадобиться допомога розробників плагінів. Вони повинні сказати вам, які стилі / сценарії включати, коли додаток запускається “.

Алекс зазначив, що бачить можливості для створення пакетів npm для інтеграції інших плагінів і забезпечення правильної роботи.

«Yoast та інші плагіни SEO, наприклад, встановлюють SEO-інформацію в головній області кожної сторінки, але сьогодні це неможливо зробити, не написавши інше проміжне рішення», – зазначив Алекс. – “Звичайно, додати не так вже й складно, але краще створити окремий пакет замість того, щоб писати код вручну для кожної теми з подібним підходом”.

Ще один момент у дорожній карті проекту Nearly Headless WordPress Theme – поліпшення компіляції залежностей, щоб уникнути конфліктів плагінів і тем. Алекс вважає, що це полегшить поширення “майже headless” тем в каталозі. WordPress.org або навіть у тематичних магазинах.

Бойлерплейт для створення “майже headless” тем доступна на GitHub (зображення). Алекс також розробляє курс, який допоможе розробникам створювати веб-сайти на основі цієї парадигми. Курс має відбутися в листопаді 2021 року.

Джерело: wptavern.com

Прокоментувати

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *