Системы управления контентом (CMS) очень полезны, позволяя вам создавать, редактировать и управлять своим контентом по мере необходимости.
Но, какими бы мощными они ни были, традиционные CMS, такие как WordPress, не отвечают всем требованиям. В некоторых случаях требуется более высокая степень гибкости. Например, вы можете захотеть интегрировать свою CMS с другой методологией кодирования и не использовать интерфейс так часто. В таких случаях WordPress все еще может быть ответом, поскольку мы можем изменить способ его использования. Мы можем использовать его как так называемую безголовую CMS .
В этой статье мы обсудим, как использовать WordPress в качестве безголовой CMS. Но прежде чем углубляться в это, давайте сначала полностью выясним, что такое безголовая CMS и что она может сделать для нас.
Определяемая безголовая CMS
Проще говоря, безголовая CMS не имеет внешнего интерфейса. Как таковой, он включает в себя только API и серверную часть, которая требуется для хранения и управления контентом, организации данных и обработки рабочего процесса. Там нет внешнего интерфейса указанного содержимого. Естественно, это означает, что любые шаблоны переднего плана, как правило, становятся ненужными в безголовых CMS.
Таким образом, в абсолютном сравнении с традиционной CMS безголовая CMS предлагает только серверную часть управления контентом и API. Поскольку интерфейс отсутствует, безголовую CMS нельзя использовать для «публикации» контента в истинном смысле этого слова. С другой стороны, традиционные CMS, такие как WordPress, часто моделируют свое существование вокруг функций публикации контента. По большому счету, это самая большая разница между CMS без головы и традиционной.
Теперь естественное избавление от внешнего интерфейса может создать достойный набор проблем для обычного пользователя. Самый большой недостаток заключается в том, что в отсутствие истинного внешнего интерфейса вряд ли найдется подходящий способ выяснить, как может выглядеть содержимое или вывод при визуализации.
Кроме того, при отсутствии надлежащих мер безопасности безголовая CMS может создавать некоторые серьезные проблемы безопасности. Это связано с тем, что на внутреннем сервере необходимо обеспечить, чтобы разные роли пользователей имели только необходимое количество привилегий для предотвращения нежелательного доступа к конфиденциальным данным.
При этом, каковы основные преимущества, связанные с безголовыми CMS? Что еще более важно, когда вы должны рассмотреть возможность использования одного?
Преимущества безголовых CMS
Возможно, самое большое и наиболее очевидное преимущество, связанное с архитектурой безголовых CMS, заключается в том, что она предлагает большую гибкость и контроль разработчикам. Вы можете управлять практически всеми аспектами разработки, управлять тем, как управляются данные, как контент хранится в бэкэнде, и даже выбирать наилучшее из возможных фронт-энд решение для ваших нужд.
Благодаря такой гибкости в сочетании с тем фактом, что каждая безголовая CMS поставляется со своим собственным API для управления вызовами на сервер и обратно, вы можете сэкономить немало времени на разработку. При работе с автономной CMS проще использовать существующие модули, устанавливать обновления и исправлять ошибки, а также выполнять другие подобные задачи.
Кроме того, стоит отметить, что приложения и веб-сайты, созданные на основе архитектуры безголовых CMS, легче масштабировать. Высокий уровень масштабируемости является очевидным преимуществом. Внутренняя часть уже отделена от внешней, поэтому время простоя для конечных пользователей сведено к минимуму.
Кроме того, безголовая CMS, как правило, совместима с большинством платформ, поскольку сам по себе интерфейс отсутствует и может быть интегрирован в соответствии с потребностями пользователя. Поскольку нет решения для публикации контента, встроенного в безголовую CMS, шансы DDoS-атак также уменьшаются.
Почему вы можете использовать WordPress в качестве безголовой CMS
Мы видели различные преимущества, которые приносят безголовые CMS.
Как правило, безголовая CMS предпочтительна в тех случаях, когда традиционная CMS может не подходить или иметь слишком ограничительный характер. Взять, к примеру, случай мобильной разработки. Вы можете легко использовать вызовы API в автономной CMS для доставки контента на платформу iOS или Android. Точно так же вы можете использовать JavaScript-фреймворки в своих приложениях и использовать безголовую архитектуру CMS для передачи контента на различные платформы.
Очевидно, что для небольших и упрощенных проектов традиционная CMS по-прежнему остается верной. Однако в тех случаях, когда вам нужен больший контроль над серверной частью и вы хотите использовать вызовы API для передачи контента на различные платформы, или даже хотите интегрировать пользовательский интерфейсный механизм, полностью независимый от серверной части (или просто не Я хотел бы иметь внешнее решение вообще), безголовая CMS идеально подходит.
С точки зрения использования WordPress в качестве автономной CMS, в него уже встроен REST API, что означает, что мы отсортировали часть API. Кроме того, мы можем использовать знакомый серверный WordPress для управления контентом.
Очевидно, что это означает, что с помощью всего лишь нескольких основных шагов мы можем иметь нашу собственную безголовую CMS в форме WordPress. Учитывая тот факт, что WordPress пользуется большой популярностью, использование его в качестве автономной CMS также подразумевает, что наша CMS может хорошо работать с различным набором аппаратного и программного обеспечения, а также регулярно обновляться и обновляться.
В то время как существуют различные безголовые платформы и опции CMS, и многие из них сами по себе действительно удивительны, WordPress все еще имеет один очень общий аспект в его пользу. Он существует уже давно, и для его работы требуется простой стек MySQL и PHP. Вы можете сократить накладные расходы и счета за облачное хранилище, используя WordPress по сравнению с другими безголовыми CMS, которые в противном случае могут иметь более широкий набор требований.
Использование WordPress в качестве безголовой CMS
WordPress состоит из трех основных частей:
- база данных, где хранится контент
- панель администратора для управления контентом (API)
- представление HTML или интерфейс для отображения содержимого.
Естественно, что как безголовая CMS, последний вариант малопригоден для нас. При использовании WordPress в качестве автономной CMS контент обрабатывается просто как данные.
Шаг первый: настройка WordPress
Важно, чтобы вы использовали новую установку WordPress. Учитывая тот факт, что существуют различные учебные пособия по установке WordPress, а официальная документация также довольно подробно описывает этот шаг, мы пропустим детали установки здесь.
Кроме того, большинство провайдеров веб-хостинга сегодня предлагают возможность установки WordPress одним щелчком мыши. Только помните: измените префиксы базы данных и таблиц со значений wp_
по умолчанию на wp_
значения и используйте надежные пароли!
Шаг второй: пустая тема
Помните, что мы упоминали, что передний конец играет небольшую роль в CMS без головы? WordPress имеет большую экосистему, которая славится своими удивительными темами. Но нам это не нужно. С учетом сказанного, тем не менее, WordPress нужна тема для запуска, даже если интерфейс не будет использоваться. Поэтому хорошей идеей является использование пустой темы.
При работе над WordPress в качестве автономной CMS все, что нужно, — это добавить файл index.php
файл style.css
в style.css
указывается название темы, сведения об авторе и т. Д. Для работы с WordPress.
Файл index.php
вашей темы должен перенаправлять пользователей на домашнюю страницу статического сайта, тем самым гарантируя, что внутренняя часть не будет затронута, а внешняя часть удалена. Вот пример кода перенаправления JS, который вы можете поместить в файл index.php
(или вы можете использовать любой собственный фрагмент кода):
<script type="text/javascript"> window.location = 'http://homepage.com'; </script>
Когда пустая тема готова и загружена в каталог themes
, активируйте ее в админке WordPress. Вот и все, мы на шаг ближе к использованию WordPress в качестве безголовой CMS.
Шаг третий: Работа с запросами API
Теперь, в качестве последнего шага, нам просто нужно сделать AJAX-запросы для использования вызовов API. Мы уже поместили пустую тему на место, поэтому теперь мы можем делать запросы данных, чтобы работать с контентом так, как мы хотим.
Есть разные способы сделать это. Возможно, проще всего использовать API Fetch, который может обрабатывать асинхронные запросы данных. Вы можете узнать больше о Fetch API здесь .
Однако некоторые старые веб-браузеры по-прежнему плохо работают с API-интерфейсом Fetch, поэтому рекомендуется использовать полифилл, который может создавать функцию API-интерфейса выборки, если браузер изначально не поддерживает ее.
Вот как может выглядеть наш код:
<!DOCTYPE html> <html> <head> <title>Using WordPress as Headless CMS</title> </head> <body> <div id="posts-list"></div> <!-- polyfill --> <script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/2.0.3/fetch.min.js" charset="utf-8"></script> <script type="text/javascript"> const pContain = document.getElementById('posts-list') fetch('http://localhost:8080/wp/wp-json/wp/v2/posts') // response .then(r => r.json()) .then(posts => { posts.map(post => { const pDiv = document.createElement('div') pDiv.innerHTML = post.title.rendered pContain.appendChild(pDiv) }) }) </script> </body> </html>
В приведенном выше коде мы просто работаем с контентом через вызовы RESTful API.
Делать больше с безголовым WordPress
Для большинства практических целей вам может потребоваться добавить дополнительные поля содержимого при работе с WordPress в качестве автономной CMS. Чтобы сделать это, используйте популярный плагин Advanced Custom Fields (ACF).
ACF, как сказал бы любой разработчик WordPress, позволяет легко добавлять настраиваемые поля к своему контенту, которые затем можно вызывать через API и API. Вы можете обратиться к документации ACF за рекомендациями для плагинов.
Однако обратите внимание, что когда вы вызываете пользовательские поля через RESTful API, вам может понадобиться использовать плагин ACF to REST API, чтобы правильно структурировать вызовы. Этот плагин можно использовать для предоставления конечных точек ACF для использования с WordPress REST API.
Менее известный и редко используемый плагин WordPress также заслуживает особого упоминания здесь — WordPress Headless . Этот плагин позволяет вам создать безголовую WordPress CMS за считанные минуты. Он удаляет внешний интерфейс и гарантирует, что постоянные ссылки на сообщения поступают в редактор, а не в представление (только зарегистрированные пользователи). Если вы хотите быстро приступить к разработке, и хотите преобразовать установку WordPress в безголовую CMS, плагин WordPress Headless может сделать это без необходимости настраивать ее самостоятельно. Очевидно, что вызовы API и другие задачи разработки все равно должны быть обработаны вами.
Вывод
При использовании WordPress в качестве автономной CMS сценарий общего использования включает случаи, когда вам может потребоваться работа с управлением контентом, например, команды, обрабатывающие свои собственные данные в бэкэнде, и т. Д. Если вы когда-нибудь захотите отобразить контент в интерфейсе в качестве выделенной страницы или если поисковые системы правильно проиндексируют контент вашего сайта, вам придется повторно конвертировать WordPress обратно в традиционную CMS.
Для всех других целей безголового использования эта конкретная модель работает довольно эффективно, и вы можете дополнительно настроить ее с помощью настраиваемых полей и других структур данных, чтобы получить желаемые результаты.