Содержание
Защищаем сайт на WordPress с помощью файла wp-config.php
От автора: в общем-то, WordPress – относительно простая в установке система, которую можно развернуть в короткие сроки. Однако вы можете непреднамеренно оставить уязвимости для хакеров. В файле «wp-config.php» хранятся ключевые настройки вашего сайта на WP, и очень важно как можно сильнее защитить этот файл от посторонних лиц. В этом видео из курса WordPress Secure Setup Guide вы узнаете, как максимально обезопасить файл wp-config.php.
Что хранится в файле wp-config.php
Если открыть wp-config.php, можно заметить, что там хранится достаточно важная информация. Во-первых, в нем содержится вся вводимая вами информация во время установки, которая дает доступ к базе данных.
Здесь можно найти название базы данных, имя пользователя, пароль – все, что необходимо для входа в базу данных. Как вы понимаете, крайне важно защитить этот файл, потому что если кто-то сможет прочитать его, то он получит доступ к базе данных и сможет вытворять там все, что душе угодно.
Идем дальше, в этом файле хранятся секретные ключи.
Эти ключи нужны для защиты вашего сайта. Еще ниже записан префикс таблиц, который также защищает ваш сайт.
Как защитить wp-config.php
Существует несколько шагов, которые необходимо выполнить, чтобы обезопасить этот файл.
1. Генерируем новые секретные ключи
Первым делом мы сгенерируем новые секретные ключи. Для этого можно зайти на secret key generator от WP. Вам нужно перейти по этой ссылке и обновить страницу, перед вами будут абсолютно новые ключи. Их можно скопировать в wp-config.php и заменить старые.
2. Перемещаем wp-config.php
Теперь мы переместим наш файл. По умолчанию он находится в корневой папке сайта. Если ваш сайт хранится на основном домене, папка будет называться «public HTML» или как-то по-другому, все зависит от того, как вы писали сайт. WP позволяет переместить файл конфигураций на один уровень выше, чтобы он не хранился в публичной папке.
Если вы работаете офлайн, можете просто перетащить файл мышкой. Если же сайт уже работает в сети, можете воспользоваться инструментом перемещения в файловом менеджере. Выберите файл wp-config.php, нажмите переместить и выберите новую папку.
Если с первого раза не получилось, можете поговорить с хостинг-провайдером и узнать у него, позволяют ли настройки сервера перемещать файл на уровень выше.
3. Запрещаем доступ к wp-config.php
Осталось сделать еще один шаг для защиты wp-config.php. Нам нужно создать файл htaccess в той же папке, где находится файл конфигураций, чтобы запретить всем доступ в wp-config.php.
Создайте файл htaccess в той же папке, где лежит файл wp-config. Просто так создать файл без расширения не получится, поэтому можно схитрить.
Если вы на Mac, создайте текстовый файл с именем htaccess.txt. Затем переименуйте файл, удалив расширение и поставив точку перед названием так, чтобы получилось .htaccess.
Мы еще не закончили, теперь необходимо кликнуть правой кнопкой мыши на файле в Finder’е, выбрать Get Info и обрезать расширение . txt в поле Name & Extension.
Теперь откройте файл в редакторе и скопируйте в него следующий код:
<files wp-config.php> order allow,deny deny from all </files>
Этот код запретит доступ к файлу wp-config.php.
Если вы на Windows, лучше всего вбить код в файл, когда у него еще расширение .txt, а затем переименовать его и удалить части с расширением. На Windows этого достаточно, теперь загрузите файл .htaccess в нужную папку.
Как закончите, загрузите этот файл в ту же папку, где хранится файл конфигураций и все!
Sprinthost — Безопасность WordPress
Сделать сайт безопасным для себя и для своего посетителя — первостепенная задача любого владельца сайта. Ежедневно злоумышленники сканируют сотни сайтов в попытках внедрить код через известные уязвимости.
Чаще других взламывают сайты на популярных CMS (WordPress, Joomla!, OpenCart, Drupal). Наиболее подвержены заражению сайты, использующие:
- Старые версии CMS;
- Необновленные или загруженные из неизвестных источников плагины, темы (шаблоны) и расширения;
- Слабые пароли к административной панели.
Для примера, в феврале 2020 года в плагине ThemeGrill Demo Importer для WordPress была обнаружена уязвимость, позволяющая полностью удалить все статьи и записи с сайта простым GET-запросом к одному из его файлов. Разработчик быстро исправил уязвимость, но она доставила неудобства многим пользователям, которые не успели вовремя обновить плагин.
В этой статье рассмотрим, как можно обезопасить сайт на CMS WordPress.
Внимание! Перед внесением изменений на сайте обязательно сделайте резервную копию.
Методов защиты сайта множество, большинство из которых выполнимо с помощью плагина All in One WP Security and Firewall:
Применяется в разделе плагина «WP Security» → «Защита от брутфорс-атак», вкладка «Переименовать страницу логина».
Укажите новый адрес административной панели и запомните или сохраните его, чтобы не терять доступ.
Если вы забыли ссылку для входа, потребуется отключить плагин. Для этого переименуйте его папку, например, добавив к названию цифру:
~/domains/имя_сайта/public_html/wp-content/plugins/all-in-one-wp-security-and-firewall_1
После этого вы сможете авторизоваться по стандартной ссылке, вернуть имя для папки плагина и изменить его настройки.
На нашем хостинге существует дополнительная защита для формы авторизации, которая блокирует прямые запросы к ней. Вы можете увидеть ее в виде перенаправления:
Чтобы отключить это перенаправление, если оно вызовет конфликты с кастомными формами авторизации, обратитесь в техническую поддержку.
Файл xmlrpc.php используется для удаленного управления CMS WordPress или обмена данными с ней некоторыми плагинами.
В большинстве случаев этот файл никак не используется сайтами, но открывает массу возможностей злоумышленникам. Так, с помощью POST-запроса к нему, могут быть внедрены ссылки в статьи, приводящие к перенаправлению на сторонние сайты.
Заблокировать доступ к этому файлу можно в разделе «Файрволл» → «Защита от уязвимостей WordPress XMLRPC и уведомлений» , поставив галочку как на скриншоте:
Или с помощью директив в файле .htaccess сайта:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from X.X.X.X
</Files>
Вместо X. X.X.X укажите IP-адреса, которым необходимо сохранить доступ к файлу.
По умолчанию в CMS WordPress таблицы используют префикс «wp_» . Зная префикс, злоумышленник может попробовать изменить содержимое той или иной таблицы. Плагин позволяет изменить префиксы автоматически в разделе «WP Security» → «Защита базы данных», вкладка «Префикс таблиц БД».
Чтобы злоумышленник заранее не знал о том, какие именно уязвимости могут присутствовать в сайте, скройте информацию о версии CMS. Выполняется в разделе «WP Security» → «Настройки» → «Информация о версии WP».
Это не все функции плагина AIO WP Security and Firewall, которые могут быть полезны в защите от взлома. Рекомендуем ознакомиться и с другими его возможностями самостоятельно.
Дополнительной защитой выступит двухфакторная авторизация. Поможет с этим плагин Google Authenticator:
Чтобы авторизоваться на сайте, помимо логина и пароля будет запрошен код из мобильного приложения Google Authenticator — его потребуется установить отдельно (доступно в App Store и Google Play).
Для связки с сайтом укажите в мобильном приложении ключ из строки Secret или отсканируйте QR-код по кнопке «Show/Hide QR code».
Двухфакторную аутентификацию можно реализовать и средствами Панели управления, поставив галочку в Файловом менеджере напротив папки wp-admin и нажав на значок щита в ряде операционных кнопок. После указания логина и пароля в открывшемся окне, для авторизации потребуются обе пары логин/пароль — те что вы используете обычно и те, что указали в Файловом менеджере.
Роботы умеют подбирать пароли, массово регистрироваться на сайтах, оставлять СПАМ-комментарии, рассылать вредоносные ссылки через формы обратной связи.
Защититься от них поможет модуль CAPTCHA, например, reCAPTCHA v2 или v3 от Google и приведем в пример вспомогательный плагин Advanced noCAPTCHA & invisible Captcha:
Получите специальные ключи в личном кабинете на сервисе Google для reCAPTCHA интересующей вас версии:
Версия v2 выводит на форме вашего сайта поле, где посетителю нужно поставить галочку или выбрать картинки по запросу, а версия v3 — невидимая, анализирует совокупность действий посетителя.
Полученные ключи введите в разделе «Настройки» → «Advanced noCAPTCHA & invisible Captcha» и выберите формы, которые хотите защитить:
Аналогичную функцию можно и реализовать плагином AIO WP Security and Firewall, речь о котором шла выше, в разделе «Защита от брутфорс-атак», вкладка «CAPTCHA на логин». Однако, там доступна только версия reCAPTCHA v2.
Доступные обновления CMS и расширений отображены в разделе «Консоль» → «Обновления»:
Если для ядра CMS появится обновление, вы увидите это уведомление на главной странице консоли.
С помощью нескольких строк кода можно настроить автоматическое обновление компонентов. Но обновлять WordPress автоматически не рекомендуем, так как это может привести к неожиданной ошибке на сайте с кодом 500.
Есть множество других методов защиты сайта, каждый из которых нацелен на определенный вид атаки. Так как с каждым днем обнаруживаются все новые уязвимости, перманентно обезопасить себя от всех невозможно.
Советуем включить еженедельную проверку файлов инструментом ХакСкан. Это позволит оперативно отреагировать на заражение, если оно все же произойдет.
Безголовый WordPress и системы управления контентом
Опубликовано в WordPress Эрин Майерс
Последнее обновление 26 июня 2022 г. одинаковый Переупаковка контента из традиционной реализации WordPress для все большего числа конечных точек на стороне клиента (таких как смарт-колонки или часы) может привести к реальной нагрузке на ваши ресурсы.
Вот тут-то и появляется концепция «безголовых» систем управления контентом (CMS). Подход безголовых CMS обеспечивает большую гибкость в отношении серверной части управления контентом, предлагая разработчикам доступ к внешним инструментам, которые они предпочитают использовать. Это также позволяет вам использовать одно и то же содержимое для множества различных выходных данных.
Нужно полное руководство по безголовой CMS WordPress? В этой статье мы рассмотрим, как веб-сайт WordPress может функционировать как безголовое решение CMS, и каковы некоторые преимущества такого подхода. Мы также обсудим, как разместить безголовую установку WordPress. Давайте начнем!
Что такое безголовая CMS?
Безголовая система управления контентом не обязательно является совершенно новой концепцией. До изящного и доступного административного интерфейса, который мы знаем и любим в WordPress, существовали базы данных контента с менее привлекательными внешними системами доставки. Коды или запросы использовались для передачи контента пользователю.
Точно так же безголовый подход становится очень ценным в нашем мире с несколькими устройствами. Безголовое управление контентом означает, что система существует исключительно для ввода, редактирования, локализации и сортировки контента на серверной части. Безголовая система должна быть очень доступной, но ее задача не в том, чтобы беспокоиться о внешнем визуальном влиянии.
Итак, как контент безголовой системы попадает в мир? Доступ к содержимому WordPress в базе данных осуществляется через вызовы RESTful API. Это означает, что его можно просматривать везде, где он вызывается, без шаблонов или плагинов. Это можно использовать для создания традиционного веб-сайта на основе браузера или почти чего-либо еще в IoT.
Headless WordPress CMS
WordPress иногда называют «монолитной» CMS. Это означает, что, хотя у него есть надежный сервер для создания и организации контента, он по-прежнему создан для того, чтобы в значительной степени заботиться о внешнем отображении. WordPress также включает функции отображения в темы и плагины, поэтому передняя и задняя часть связаны друг с другом.
Однако вы можете воспользоваться превосходной функциональностью управления контентом WordPress и эффективно обезглавить его, оставив вам быструю и легкую безголовую CMS. Используя REST API WordPress, вы можете расширить управление контентом, которое вы создали в WordPress, за пределы вашей темы.
В этом сценарии вы по-прежнему сможете использовать все внутренние функции платформы, но она станет реактивной системой. Контент будет ждать, пока его вызовут, и ответит соответствующим образом. Это резко контрастирует с нынешним, более активным способом, которым WordPress продвигает или доставляет контент на преимущественно браузерные сайты.
Decoupled и Headless CMS
Однако что, если вам нравится ваша тема и то, как она выглядит в Интернете? Если вы хотите получить свой торт и съесть его, есть это решение. Вы можете создать «несвязанную» CMS с помощью WordPress.
В стандартном WordPress передняя и задняя части связаны. Они координируют вызовы чтения и записи, чтобы представить ваш сайт конечным пользователям. Однако разделение передней и задней части позволяет получить лучшее из обоих миров.
Когда вы отделяете свою CMS, вы получаете больше химеры. Мало того, что ваша база данных контента сможет отображать более традиционный интерфейс для внешнего интерфейса, вы также можете использовать вызовы API с более широкого спектра устройств для доступа к вашему контенту. В безголовой настройке вы теряете эту традиционную, основанную на теме, опцию внешнего интерфейса.
Существуют плагины, позволяющие отделить интерфейсную часть WordPress от серверной, но важно быть готовым к тому, что это означает. Разделение может означать, что вы должны иметь более практичный подход к обслуживанию сайта, безопасности и поисковой оптимизации (SEO). Кроме того, вы потеряете стандартный предварительный просмотр в реальном времени, к которому вы привыкли, со связанной структурой WordPress.
Теперь, когда вы лучше понимаете механику и архитектуру безголовой CMS и как она может выглядеть в ядре WordPress, давайте поговорим о том, что вы можете получить от этого подхода.
Что можно сделать с безголовой CMS?
Возможно, лучшее, что вы можете сделать с безголовой CMS, — это, по сути, подготовить ваш контент WordPress к будущему. Пока конечная точка API все еще существует, содержимое может быть вызвано. Безголовая CMS означает, что вы создаете ориентированную на разработчиков систему, ориентированную на API, а не на то, как бэкенд-администрирование будет подпитывать внешний дизайн.
Таким образом, использование Headless дает вам большую гибкость при переносе контента, если вам это нужно, поскольку вы не будете так сильно привязаны к темам и плагинам. С точки зрения маркетинга вы также можете создавать персонализированные пути клиентов, не заполняя заявку каждый раз, когда вы хотите добавить или изменить какой-либо контент.
Это отличный вариант для разработчиков, которые хотят доставлять контент на платформы Android и iOS из одной серверной части. Другой вариант использования безголовой структуры — это веб-сайты или приложения, использующие фреймворки JavaScript, такие как AngularJS, VueJS или React.
Преимущества безголового WordPress
К этому моменту мы уже упомянули несколько преимуществ использования безголовой архитектуры WordPress для управления вашим контентом. Однако есть масса дополнительных преимуществ:
- Больше контроля. Когда вы отсоединяете WordPress, вы получаете почти неограниченный контроль с точки зрения разработки. Front-end разработчики могут проявлять творческий подход с динамическим использованием JavaScript и предоставлять опыт «за пределами шаблона».
- Повышенная масштабируемость. При разработке безголовой системы ее можно очень быстро масштабировать. Ваш контент может продолжать создаваться, и, поскольку вы теперь являетесь магазином, ориентированным на API, вы можете мгновенно реагировать на новые потребности пользователей.
- Повышение безопасности . Развязанные и безголовые подходы минимизируют риск для вашего контента. Поскольку ваш контент живет отдельно от вашего внешнего интерфейса, он не так подвержен проблемам со сторонними приложениями.
- Легкая конструкция. Когда вы обезглавлены, вы сильно теряете вес. Поскольку теперь ваша система состоит только из базы данных контента и вызовов API, доставка контента может быть гибкой, гладкой и быстрой.
Если учесть многочисленные преимущества разделения структуры WordPress, возможно, это именно то, что вам нужно. Это особенно верно, если вам удобно разрабатывать за пределами стандартного пакета CMS, и вы хотите, чтобы ваш контент был доступен на всех устройствах.
Потенциальные проблемы с безголовым сайтом WordPress
Прежде чем вы начнете, однако, стоит отметить, что есть некоторые недостатки перевода WordPress в несвязанное или безголовое состояние. Если у вас есть небольшой веб-сайт с простым контентом, вы, вероятно, захотите ознакомиться с этими потенциальными проблемами, прежде чем делать решающий шаг:
- Нет Редактор WYSIWYG . По-настоящему безголовый подход означает, что вы потеряете возможность предварительного просмотра в реальном времени. Вы не сможете легко проверить, что увидит внешний пользователь.
- Расширенное программирование. Если раньше вам не нужен был программист внешнего интерфейса, то теперь он вам понадобится. Вам потребуются более продвинутые библиотеки, чтобы действительно максимально использовать безголовую систему.
- Больше обслуживания. Это действительно вступает в игру с раздельной установкой. В итоге вам может понадобиться поддерживать две системы, особенно с точки зрения обновлений и безопасности.
- Более жесткая аттестация. Безголовая система требует других учетных данных пользователей, чем связанная CMS. Это может быть утомительной задачей, хотя и обеспечивает более безопасную среду.
После того, как вы обдумаете потребности своего сайта и чего хотите достичь, вы сможете решить, подходит ли вам безголовая CMS.
Хостинг безголового сайта WordPress
Переход на безголовую CMS может открыть новые двери для вашего контента, но не устраняет необходимость в надежном хостинге. Здесь, в WP Engine, у нас есть поддержка и информация, которые могут помочь, если вы планируете использовать WordPress для создания безголовой CMS.
Являясь платформой цифрового опыта WordPress (DXP), WP Engine может помочь вам с аспектами вашего сайта, специфичными для платформы. Это включает в себя устранение неполадок REST API и стандартных функциональных проблем WordPress, а также предоставление быстрых и надежных услуг хостинга.
Найдите больше свободы с WP Engine
Управление контентом без головы предлагает множество вариантов для разработчиков и пользователей WordPress, которые обеспокоены разработкой доставки контента для «следующей большой вещи». Здесь, в WP Engine, у нас есть лучшие ресурсы для пользователей и разработчиков WordPress, которые хотят расширить WordPress с помощью REST API и безголового управления контентом.
Более того, не забудьте обеспечить стабильную и быструю основу для вашей связанной, развязанной или автономной системы WordPress с помощью надежных и гибких вариантов хостинга WordPress от WP Engine!
4 причины использовать WordPress в качестве безголовой CMS
Когда все начиналось, WordPress считался простым приложением для ведения блога. Однако со временем и благодаря вкладу многочисленных энтузиастов технологий со всего мира WordPress превратился в целую экосистему управления контентом.
Только они знают, как долго и тяжело они прошли путь от простого приложения для ведения блога до популярной системы управления контентом.
Еще один способ сделать веб-сайт более эффективным — разместить этот контент в безголовой среде. При таком подходе база данных контента веб-сайта отделена от его веб-сайта, а это означает, что он обеспечивает большую гибкость, многоканальный подход и более высокую производительность.
Как WordPress, как безголовая CMS, может помочь вашему сайту? Например, почему это будет необходимо для вашего бизнеса. Давайте обсудим это в этой статье.
Что означает отсутствие заголовка для WordPress?
Прежде чем мы начнем говорить о настройке безголового WordPress и о том, чем он отличается от традиционного WordPress, вам сначала нужно понять безголовые системы управления контентом в целом.
Существуют CMS, с которыми вы, вероятно, работали, которые управляют интерфейсом веб-сайта (называемым веб-интерфейсом) и его серверной частью. Серверная часть — это место, где вы создаете, собираете и организуете контент, который планируете использовать.
Когда посетители просматривают переднюю часть веб-сайта, мы ожидаем, что они увидят контент из задней части вашей системы управления контентом.
Можно сказать, что этот тип установки представляет собой «связанную» архитектуру CMS, поскольку он включает инструменты редактирования пользовательского интерфейса и инструменты управления в одной и той же установке.
Поскольку и серверная часть, и клиентская часть построены с использованием одного и того же языка и инфраструктуры, эта установка популярна среди новичков. Начинающим и малым предприятиям также следует подумать об инвестировании в инструменты интеллектуального анализа данных , поскольку они меняют правила игры для каждого предприятия.
Однако безголовая CMS работает иначе. Он отделяет переднюю часть («голову») от задней (остальной части «тела» вашего сайта).
С автономной CMS вы по-прежнему можете создавать, редактировать, загружать и систематизировать свой контент. Безголовые CMS не передают контент напрямую во внешний интерфейс. Вместо этого они обычно делают свои ресурсы доступными для отдельного внешнего приложения через REST API.
Последнее, о чем они думают, это то, как контент выглядит для посетителей.
При такой настройке вы можете получить доступ к базе данных только из серверной части установки.
Несмотря на то, что безголовая CMS не является лучшим решением для всех пользователей WordPress, иногда эта конфигурация идеально подходит. Давайте посмотрим, почему некоторые компании могут захотеть попробовать безголовую CMS.
Преимущества безголовой конфигурации WordPress
Существует множество причин, по которым кто-то предпочитает использовать безголовую установку WordPress, а не традиционную. Некоторые примеры включают эффект «не у меня на заднем дворе», практичность или масштабируемость. Вот основные причины, по которым безголовая архитектура WordPress может сделать сайт лучше:
Повышенная производительность
Одним из преимуществ перехода на автономный веб-сайт является более высокая скорость загрузки сайта. WordPress традиционно использует PHP, что заставляет сервер запрашивать больше данных, чем ему нужно для создания сайта. Тогда скорость загрузки сайта может замедлиться.
Кроме того, некоторые плагины могут замедлять работу вашего веб-сайта, и вот руководство о том, как узнать, какой плагин WordPress замедляет его .
С другой стороны, поскольку безголовый WordPress использует такие фреймворки, как Vue.js, React.Js и т. д., веб-страницы не создаются каждый раз, когда пользователь отправляет запрос. В этих случаях страницы представляют собой статический HTML, и обновляется только та часть, которую необходимо обновить.
Ускоряет загрузку страницы. Это делает пользовательский опыт вашего клиента намного лучше.
Гибкость внешнего интерфейса
WordPress предоставляет вам множество вариантов настройки пользовательского интерфейса. Таким образом, многим пользователям WordPress нравится возможность что-то менять во внешнем интерфейсе.
Тем не менее, некоторые люди чувствуют ограничения в WordPress и хотят создать пользовательский интерфейс с нуля. Такие люди могут создать сложный интерфейс с помощью WordPress без головы.
Для таких людей безголовый WordPress — лучший вариант.
Кроме того, нет обязательной формулы при настройке безголового сайта WordPress. Пользователи WordPress могут воспользоваться преимуществами многих фреймворков Javascript. Они могут использовать любой фреймворк, который они предпочитают, для создания внешнего интерфейса своего сайта WordPress.
Поэтому, если вы хотите изменить дизайн своего веб-сайта или создать его с нуля, с безголовым WordPress это будет намного проще. Как бы вы ни меняли внешний вид своего сайта, содержание остается прежним.
Однако, если у вас есть веб-сайт с низким трафиком и ваш бизнес не настолько велик, чтобы вам нужно было использовать CRM , время, затраты и энергия не окупятся.
Многоканальная публикация
Для малого бизнеса вы можете использовать традиционный сайт WordPress для настольных и мобильных устройств. Однако, если вам нужен более крупный бизнес, который может масштабироваться на нескольких платформах, включая платформы социальных сетей, платформы IoT и т. д., вы, возможно, не сможете этого сделать.
Headless WordPress позволяет вам создать веб-сайт, который можно публиковать на нескольких каналах, таких как сайты социальных сетей, мобильные приложения, интеллектуальные устройства и виртуальные помощники, такие как Siri или Alexa.
Хорошая новость заключается в том, что как только вы внесете изменения в CMS, вы сможете автоматически увидеть их на всех платформах.
Улучшенная безопасность
Мы не утверждаем, что будет невозможно найти вашу базу данных и получить к ней доступ, но мы гарантируем, что это будет намного сложнее, если ваш интерфейс и сервер разделены. Из-за того, что внешний интерфейс является независимым, хакерам сложнее получить доступ к вашим ценным данным.
Хорошо, есть некоторые вещи, которые вы можете сделать, чтобы люди не могли получить доступ к вашим данным, и защитить себя от угроз , не теряя головы. Тем не менее, преимущество безопасности — это еще один бонус безголовой установки.
Недостатки безголовой конфигурации WordPress
Опять же, не забывайте, что безголовый WordPress не является идеальным вариантом для всех. Применять эту технологию просто ради ее применения — это не решение.
WordPress CMS — это опыт, который не требует кодирования. Однако, когда дело доходит до безголового WordPress, это не так. Если вам не нравятся интерфейсные языки программирования, такие как JavaScript, вам нужно нанять кого-то, кто может создать для вас безголовую часть.
Кроме того, когда вы используете безголовый WordPress, у вас возникает дополнительная рабочая нагрузка, поскольку вам приходится следить за двумя системами вместо одной.
Здесь вы можете увидеть десять лучших мест, где вы можете найти и нанять внештатных разработчиков .
Заключение
Безголовый WordPress становится все популярнее среди людей, использующих WordPress.