Алекс Стэндифорд, разработчик WordPress в AffiliateWP, выпустил шаблон для того, что он называет «почти безголовой» темой WordPress . Он использует Underpin , Nicholas и AlpineJS, чтобы обеспечить веб-сайт , похожий на приложение, при этом обеспечивая гибкость для рендеринга определенных страниц с использованием PHP вместо Javascript.
В сообщении под названием « WordPress без головы переоценен: случай для веб-приложения с почти безголовым интерфейсом » Стэндифорд описывает несколько недостатков полного отсутствия головы.
Одна из проблем с полностью автономным WordPress – это маршрутизация. За кулисами WordPress имеет много встроенной логики для обработки маршрутизации, и с безголовым подходом вам нужно создать что-то для обработки этого на интерфейсе. В конечном итоге вы заново изобретаете колесо, и на его создание уходит много дополнительного времени.
Еще одна проблема с WordPress без головы быстро становится очевидной, когда вы пытаетесь использовать большинство плагинов WordPress. Уродливая правда заключается в том, что вам обычно приходится изобретать много вещей заново, чтобы плагин работал должным образом.
Почти безголовая система Стэндифорда – это продукт его переосмысления безголового WordPress. Он хотел сохранить ощущение приложения, а также все встроенные возможности WordPress и те, которые доступны через систему плагинов.
Тема WordPress Nearly Headless использует для рендеринга AlpineJS, который, по словам Стэндифорда, является легким, легким для понимания и « исключительно хорошо работает с рендерингом на стороне сервера PHP ». Он загружается вокруг тегов HTML-шаблонов, которые создают контент для публикации с помощью REST API WordPress. Система использует хранилище сеансов, чтобы ускорить работу и минимизировать количество вызовов REST API.
Учебный сайт WP Dev Academy Стэндифорда и его агентство DesignFrame Solutions используют бета-версии почти безголовой системы. С тех пор, как эти сайты были разработаны, Стэндифорд полностью переписал систему и внес значительные улучшения на основе того, что он узнал из более ранних версий. У него есть живая демонстрация текущей версии, доступная на nearly-headless.dev .
Подход почти без головы сравним с традиционным подходом без головы с точки зрения производительности благодаря библиотеке Standiford Nicholas , которая включает кэширование на стороне клиента и уровень маршрутизации в качестве поддержки приложения для темы.
«Николас будет загружать контент через REST, так же, как это делает безголовый сайт», – сказал Стэндифорд. «В этих случаях время загрузки очень похоже на то, что вы видите на безголовом сайте. Фактически, они ведут себя и в основном работают одинаково. Ключ в том, что Николас также сохраняет данные в хранилище сеанса после посещения страницы, и каждый раз, когда эта страница загружается после этого, она загружается мгновенно ».
Насколько далеко может вас унести шаблон? Разработчики, которые его используют, должны быть готовы расширить или заменить базовые шаблоны, которые он включает, для загрузки WordPress. Он не ставит CSS в очередь. Ключевые функции разбиты на отдельные зависимости, поэтому пользователи могут быть в курсе по мере развития проекта.
« Для всех намерений и целей шаблон – это чистый лист», – сказал Стэндифорд. «Вы можете думать о шаблоне как о подходе почти без головы. Все зависимости, сценарии и элементы, необходимые для запуска движка, включены в шаблон. Все зависимости упакованы в Composer или Node, поэтому ваша тема может обновляться по мере улучшения системы без переписывания всей вашей темы ».
У Standiford есть несколько серьезных улучшений, запланированных для будущего шаблона. В настоящее время он совместим с редактором блоков и многими плагинами, но требует режима совместимости.
“Большое начальное улучшение будет заключаться в устранении необходимости в режиме совместимости на как можно большем количестве страниц”,-сказал Стэндифорд. “Многие библиотеки блоков, плагины форм и другие вещи имеют определенные сценарии, которые, как они ожидают, загружаются на страницу, о которой приложение не может знать, и из-за этого некоторые плагины не будут работать без включения режима совместимости. Это возможно сделать, но мне бы пригодилась помощь разработчиков плагинов, которая помогла бы мне понять, какие стили/сценарии необходимо включать при запуске приложения”.
Стэндифорд сказал, что видит возможность создавать пакеты npm, которые интегрируют другие плагины и обеспечивают их правильную работу.
«Yoast и другие плагины для SEO, например, устанавливают информацию для SEO в заголовке каждой страницы, и прямо сейчас этого не произойдет без написания еще одного промежуточного программного обеспечения», – сказал он. «Добавить это не так уж сложно, но это одна из тех вещей, которые можно упаковать и включить вместо того, чтобы писать вручную для каждой темы, использующей этот подход».
Еще один пункт в почти безголовой шаблонной дорожной карте WordPress-это улучшения в том, как компилируются зависимости, чтобы лучше избегать конфликтов плагинов и тем. Стэндифорд считает, что это облегчит распространение тем, созданных с использованием этого метода, на WordPress.org каталог, или даже продавать их на коммерческой основе. Он также экспериментировал с автоматическим кэшированием всего содержимого страницы при ее загрузке, не загромождая браузер и не перегружая сервер запросами. Результатом будет мгновенная загрузка страниц с уменьшенной нагрузкой на сервер
Boilerplate для Почти Безголового WordPress Themes доступен на GitHub и Стандифорд также создание курса , который поможет разработчикам сайтов сборки с помощью этого почти обезглавленной парадигмы. Он ожидает, что он будет выпущен в ноябре 2021 года.