Безголовый WordPress: полное руководство

Опубликовано: 2023-03-01

Как вы, наверное, уже знаете, WordPress — это мощная платформа для создания веб-сайтов. В качестве системы управления контентом (CMS) WordPress предлагает простые в использовании функции публикации. И вы можете расширить WordPress, чтобы делать практически все, что захотите. Но слышали ли вы о «безголовом» WordPress?

В этом руководстве вы точно узнаете, что такое безголовый WordPress. Вы поймете ситуации, которые могут привести к его использованию, и случаи, когда использование безголового WordPress — не лучшая идея. Кроме того, мы рассмотрим некоторые из самых популярных интерфейсных и стековых решений, которые обычно используются с безголовыми развертываниями WordPress.

Прежде чем слишком углубляться в WordPress как безголовую CMS, важно сначала понять, что такое CMS и проблемы, для решения которых она предназначена. Что может сделать человека «безголовым» и почему это может быть полезно в некоторых случаях? Кому это может быть полезно?

Безголовый WordPress

Что такое система управления контентом (CMS)?

Серверная система управления контентом или CMS доминирует над подавляющим большинством веб-сайтов, которые вы просматриваете сегодня. На заре Интернета все сайты создавались непосредственно из статической HTML-страницы. Чтобы создать новый пост или статью, вам нужно будет создать новый HTML-документ. Затем вы должны добавить его на сервер вместе с его активами, такими как изображения, другие медиафайлы и файлы CSS. Затем вам нужно будет указать ссылку на новую страницу в навигации по вашему сайту и с других страниц, ссылающихся на нее.

Управление контентом до систем управления контентом

Разработка веб-сайтов примерно с 1995 по 2000 год могла быть невероятно неэффективной. Создание и загрузка новых файлов в любое время, когда у вас был новый контент, было относительно простым. Но новый контент неизбежно требовал изменений в старом контенте. А поскольку сайты разрослись до сотен и тысяч страниц, быстрое внесение изменений вручную стало невозможным. Даже с некоторой автоматизацией это может быть медленным.

Презентация и содержание были смешаны

Связанная с этим проблема заключалась в том, что содержимое и его представление (например, макет и стили дизайна) были негибкими и часто смешивались друг с другом в документе HTML. CSS должен был вступить в свои права, чтобы по-настоящему решить эту проблему, но нужна была CMS, чтобы воспользоваться этим преимуществом, отделив дизайн от контента.

Рабочие процессы и роли были смешанными

Сложность внесения глобальных изменений в контент и дизайн функциональных, интерактивных частей веб-сайта сделала процесс публикации и обслуживания контента очень медленным и сложным. Команды, ответственные за контент, внешний дизайн и внутреннюю разработку, также не имели четких границ.

Динамическое решение CMS на основе базы данных

Система управления контентом родилась вокруг этой идеи: вместо того, чтобы создавать совершенно новые HTML-файлы каждый раз, когда требуется новая веб-страница, весь контент для каждой страницы будет храниться в реляционной базе данных, такой как MySQL. Затем CMS, написанная на языке сценариев на стороне сервера, таком как PHP, будет использоваться для запроса и включения переменных частей контента из базы данных на динамически генерируемые страницы. Каждый запрос страницы от посетителя может привести к созданию для него новой уникальной версии запрошенного контента.

Ограничения динамической CMS

WordPress использует шаблоны дизайна, написанные на PHP, смешанные с HTML, для создания окончательного HTML-документа, который предоставляется посетителям при каждом запросе страницы. По сравнению с простотой публикации динамических страниц с помощью CMS трудно поверить, что есть что-то полезное в веб-публикации на основе статических файлов — пока вы не оцените безопасность и производительность в масштабе с базой данных и без нее, которая запрашивается почти при каждой загрузке страницы.

Безголовый как гибридный подход — лучшее из обоих миров

Headless — это гибридный подход к обслуживанию веб-страниц из в основном статических ресурсов во внешней среде. Этот внешний интерфейс использует CMS и базу данных только для извлечения динамического содержимого или получения пользовательского ввода, когда это абсолютно необходимо. Это позволяет отображать страницы «на лету» для посетителей и кэшировать их, когда их не нужно часто менять.

Безголовый WordPress и другие безголовые системы управления контентом

Безголовый WordPress — это способ развертывания WordPress, когда серверная часть отделена от обычных функций внешнего интерфейса. Тема не используется. Бэкэнд отвечает только за:

  • Управление базами данных
  • Управление пользователями
  • Управление содержанием
  • Взаимодействие с внешними сервисами

Интерфейсный уровень представления обычно состоит из React.js или другого внешнего интерфейса на основе JavaScript и фреймворка HTML/CSS. Контент собирается из серверной части через API, такой как WP GraphQL (реализация GraphQL в WordPress) или основной REST API WordPress.

Также может быть несколько интерфейсов, обрабатывающих разные каналы для разных устройств, которые могут использовать посетители. Кроме того, не требуется, чтобы внешний интерфейс (ы) совместно использовали тот же сервер, что и внутренний. Это инфраструктура, необходимая для эффективной многоканальной публикации. Многоканальность позволяет предоставлять уникальный контент мобильным приложениям и любым устройствам в Интернете вещей.

Существует довольно много популярных генераторов статических сайтов с открытым исходным кодом для создания безголовых веб-сайтов, таких как Hugo и Jekyll. Это полностью плоские файловые системы без баз данных и инструментов управления контентом, которые WordPress предлагает в безголовых или традиционных развертываниях. Gatsby и Next.js также можно использовать для создания статических сайтов, но они также предлагают расширенные интерфейсные фреймворки, которые можно использовать в безголовых развертываниях WordPress. Но имейте в виду, реальная сила безголового WordPress заключается не в том, что он использует базу данных гораздо меньше, а в том, что он оптимизирует использование базы данных для гораздо большего количества возможностей, чем традиционная CMS с одной темой и одноцелевым интерфейсом. С безголовым WordPress вы можете создавать несколько интерфейсов или поддерживать прогрессивное веб-приложение (PWA) или родное мобильное приложение.

Почему Headless WordPress — лучшая безголовая CMS

WordPress — настолько мощная и широко используемая платформа, что она находится в уникальном положении, чтобы добиться успеха в качестве безголовой CMS.

Вот пять причин, по которым WordPress может быть лучшим выбором для вашей безголовой CMS.

1. Вы уже используете WordPress, как и все остальные

Скорее всего, вы уже используете WordPress, поэтому отрубить ему голову — это простой шаг вперед.

Поскольку WordPress не зависит от внешнего интерфейса, существующие сайты с базами данных, заполненными контентом, могут довольно безболезненно отключиться. Или к безголовому сайту WordPress может быть повторно подключена «голова». Двигаться в любом направлении с WordPress несложно.

Многие из ваших сотрудников и будущих сотрудников имеют или будут иметь опыт работы с WordPress. Вы можете рассчитывать на более простой процесс адаптации благодаря знакомым технологиям.

2. Вашим фронтенд-разработчикам не нужно прикасаться к WordPress или PHP

Поскольку PHP считается языком серверных приложений, он обычно не является ключевой частью современного обучения фронтенд-разработке. Однако платформа WordPress написана на PHP. Традиционная (безголовая) фронтенд-разработка для WordPress фокусируется на создании пользовательских тем, использующих функции WordPress API и код, которые будут знакомы PHP-разработчикам, но не другим. В то время как WordPress быстро развивается, и новые темы, совместимые с его редактором сайта, могут использовать мало или совсем не использовать PHP, WordPress предстоит пройти долгий путь, прежде чем PHP полностью отступит на задний план. В настоящее время существует отличное решение, которое вы можете использовать, чтобы меньше полагаться на PHP или полностью обойти его в пользу современных интерфейсных фреймворков. Это решение — безголовый WordPress.

Если вы нанимаете разработчиков интерфейса для работы над стандартным (безголовым) проектом WordPress, вы можете обнаружить, что у вас меньше рабочей силы, на которую можно опереться. Разработчик, не знакомый с PHP или аналогичным языком сценариев на стороне сервера, может обнаружить, что его кривая обучения WordPress высока. Но если они преуспевают в разработке интерфейса со сложными средами CSS и JavaScript, такими как React, это идеально подходит для безголового сайта WordPress. Почему бы не использовать их сильные стороны? В другом сценарии, если вы еще не используете WordPress или аналогичную CMS, но у вас есть опытные разработчики внешнего интерфейса, вы можете не захотеть заставлять их учиться работать с совершенно новой CMS. Это когда безголовый WordPress может быть отличным решением.

Разработчикам не нужно быть знакомым с WordPress, чтобы создать интерфейс для безголового сайта WordPress. Вы можете нанять практически любого способного разработчика интерфейса. Вы можете потратить немного или много, но получить совершенно индивидуальный интерфейс. Совершенно уникальный, сделанный на заказ дизайн сайта почти всегда будет служить вам лучше всего, если у вас есть очень уникальные потребности.

3. Хосты корпоративного класса поддерживают безголовый WordPress

Почти каждая платформа хостинга веб-сайтов предлагает хостинг WordPress. У них может быть более чем десятилетний опыт поддержки. Управляемые хостинги WordPress поддерживают корпоративные сайты WordPress, а многие крупные управляемые хостинги WordPress предлагают специализированный безголовый хостинг, инструменты и поддержку. Они делают безопасность и производительность вашего сайта своим приоритетом.

4. Безголовый WordPress — это быстро

Каждая CMS публикует более медленное время загрузки для посетителей по сравнению со статическим сайтом. Генерация динамических страниц требует больше серверных ресурсов, а сильно встроенная CMS может иметь большую нагрузку на сервер. Даже высокопроизводительный сайт WordPress с надежным хостингом и эффективным кэшированием будет замедляться из-за высокой нагрузки трафика и большого количества активных пользователей, вошедших в систему. Безголовые сайты WordPress по-прежнему пользуются преимуществами CMS, но работают больше как генераторы статических сайтов с базой данных. Посетители получают в основном быстро загружаемые статические файлы, когда заходят на безголовый сайт.

Веб-сайт, который загружается слишком долго, является одной из самых больших проблем для владельцев сайтов. С экспоненциальным увеличением количества просмотров мобильных сайтов скорость важнее, чем когда-либо. На сайтах электронной коммерции медленная загрузка означает потерю продаж. Типичный пользователь не будет сидеть и ждать загрузки вашего сайта более нескольких секунд. Если он не загрузится сразу, они перейдут к следующему.

Уменьшение времени загрузки вашего сайта имеет решающее значение. Кроме того, Google учитывает скорость загрузки страниц при ранжировании сайтов в результатах поиска. Если SEO является для вас большим приоритетом, может быть разумно рассмотреть другой интерфейс для WordPress.

5. Безголовый WordPress может повысить безопасность

Обычная установка WordPress оставляет открытым интерфейс администратора, а не только экраны входа. Даже пользователи низкого уровня, не являющиеся администраторами, потенциально могут получить доступ к внутреннему администратору. Иногда хакеры могут использовать это с помощью уязвимого плагина или темы. Безголовые сайты WordPress обычно вообще не используют тему, а безголовые сайты, ориентированные на контент, могут ограничивать пользователей несколькими доверенными пользователями. В этом сценарии процесс входа в систему может быть жестко заблокирован, а другие возможные цели для хакеров могут быть закрыты, потому что они не нужны.

Вы можете использовать мощный плагин безопасности WordPress, такой как iThemes Security Pro, чтобы полностью защитить безголовый сайт WordPress. Это так же полезно на любом сайте WordPress для защиты серверной части, установки правильных ролей доступа пользователей и обеспечения соблюдения политик безопасного входа.

Когда использовать безголовый WordPress — плохая идея?

В то время как безголовый WordPress — невероятно мощный инструмент, который нужно иметь на поясе, у него есть несколько недостатков.

Это может быть сложно

Создание безголовой CMS не для неопытных разработчиков, если они не готовы серьезно учиться. В отличие от WordPress, который на 100% работает по принципу plug-and-play, безголовая CMS таковой не является. Вы начинаете с простой установки WordPress, а затем отделяете ее части, в основном внешний интерфейс. Затем вам нужно будет разработать свой собственный интерфейс. Если это незнакомая территория, потребуется значительная кривая обучения. В отличие от обычных сайтов WordPress, безголовый WordPress не так широко известен и не так хорошо задокументирован. Будет полезно связаться с ведущими безголовыми экспертами по хостингу и разработке WordPress и следить за их работой.

Некоторые вещи не будут работать

Новые функции редактирования сайта в WordPress не будут полезны или неприменимы на безголовом сайте. Чтобы редактор блоков в редакторе сообщений Gutenberg хорошо работал с безголовым интерфейсом, также возникают некоторые проблемы. Многие плагины WordPress могут работать плохо или вообще не работать в безголовой среде. Хозяева и разработчики WordPress работают над улучшением и поддержкой автономной разработки WordPress, поэтому эта область постоянно меняется. Внимательно изучите текущее состояние безголовой технологии WordPress и соответствующим образом спланируйте свой проект.

Техническое обслуживание является обязательным

Поддержка собственного внешнего кода может занять много времени. А поскольку редактор постов Gutenberg живет на бэкэнде WordPress, если вы хотите использовать его на своем безголовом сайте, вам придется синхронизировать его стили бэкенда с вашей несвязанной интерфейсной структурой для истинного опыта WYSIWYG. Этот внешний фреймворк также будет нуждаться в постоянном обслуживании. Безголовые развертывания требуют тщательного предварительного планирования текущего обслуживания, которое выходит за рамки традиционного веб-сайта на основе WordPress или CMS.

Получите бонусный контент: Руководство по безопасности WordPress
Кликните сюда

Начало работы с безголовым WordPress

Установите WordPress и отключите интерфейс!

Как это обычно бывает в WordPress, в этом вам могут помочь некоторые плагины. Один из них метко назван плагином Headless CMS. Установите и активируйте его, как и любой другой плагин WordPress.

Затем начните работать над интерфейсом вашего сайта. Вы можете использовать несколько разных подходов. Вы можете выбрать уже существующий внешний интерфейс или фреймворк, например, Gatsby. Или вы можете рассмотреть возможность создания прогрессивного веб-приложения.

Джемстек

Если вы не знакомы с Jamstack, это часто используемая платформа для веб-разработки. Его использование хорошо послужит вам в качестве внешнего интерфейса для безголового WordPress или любой другой CMS.

Слабая связанность — одна из самых сильных сторон Jamstack. Если вы когда-либо проходили процесс разделения WordPress, эта функция будет вам очень полезна.

Прогрессивные веб-приложения (PWA)

PWA во многом похож на веб-сайт. Но в отличие от веб-сайтов, PWA будет использовать огромное количество библиотек Javascript, которые дают пользователям нативную мобильную среду.

Для этого вам потребуется использовать фреймворк, такой как React или Vue, для разработки приложения.

Гэтсби

Вы хотите ускорить процесс разработки, сохраняя при этом большую часть свободы, которую вы получаете с безголовой CMS?

Gatsby — хороший выбор, и для него есть плагин.

Подходит ли вам безголовый WordPress?

WordPress — невероятный инструмент сам по себе. Но бывают случаи, когда вам может потребоваться собственный внешний интерфейс с использованием безголовой CMS.

В этом руководстве вы узнали о методах, причинах и подходах, которые следует использовать при настройке безголового WordPress.

Если вы решили, что безголовый — лучший способ удовлетворить ваши потребности в разработке сайта, теперь вы знаете достаточно, чтобы приступить к работе.