- Home »

Как использовать контент WordPress в приложении Gatsby.js
В этой статье разберём, как вытащить контент из WordPress и использовать его в приложении на Gatsby.js. Почему это важно? Всё просто: WordPress — это проверенный временем движок, который любят за удобную админку, а Gatsby — это современный фреймворк для статических сайтов, который даёт молниеносную скорость, безопасность и гибкость. Если хочется совместить лучшее из двух миров — вот тебе подробная инструкция, как это сделать быстро, без боли и с минимальным количеством костылей. Будет полезно тем, кто хочет автоматизировать публикацию, ускорить сайты, снизить нагрузку на сервер и получить максимум от своего хостинга. Погнали!
Как это работает?
Вся магия строится на том, что Gatsby может забирать данные из разных источников, в том числе из WordPress, через API. Обычно используется REST API или GraphQL (через WPGraphQL-плагин). Gatsby превращает эти данные в статические страницы, которые потом можно залить на любой хостинг или CDN. В итоге: WordPress остаётся только как headless CMS (т.е. только для управления контентом), а фронтенд полностью на Gatsby — быстрый, безопасный, без лишних нагрузок.
- WordPress — источник контента (админка, публикации, медиа, таксономии).
- Gatsby — генератор статических сайтов, который собирает данные через плагины.
- API — связующее звено (REST или GraphQL).
Выглядит это примерно так:
WordPress (контент) ←→ API ←→ Gatsby (генерация) → Статический сайт (хостинг, CDN)
Как быстро и просто всё настроить?
Давай по шагам, без воды и с примерами команд. Предполагается, что у тебя уже есть сервер или VPS (если нет — заказать VPS или выделенный сервер).
- Установи WordPress (если ещё не стоит). Можно на локалке, можно на сервере. Главное — чтобы был доступ к API.
-
Проверь, что REST API работает:
curl https://your-wordpress-site.com/wp-json/wp/v2/posts
Если видишь JSON с постами — всё ок. -
Для GraphQL-любителей: ставим плагин WPGraphQL через админку или командой:
wp plugin install wp-graphql --activate
Теперь твой GraphQL-эндпоинт:https://your-wordpress-site.com/graphql
-
Ставим Gatsby CLI (если ещё не стоит):
npm install -g gatsby-cli
-
Создаём новый проект Gatsby:
gatsby new my-gatsby-site
cd my-gatsby-site
-
Ставим нужный плагин для WordPress:
- Для REST API:
gatsby-source-wordpress
- Для GraphQL:
gatsby-source-wordpress-experimental
(или простоgatsby-source-wordpress
v5+)
npm install gatsby-source-wordpress
- Для REST API:
-
Настраиваем
gatsby-config.js
:module.exports = { plugins: [ { resolve: `gatsby-source-wordpress`, options: { url: `https://your-wordpress-site.com/graphql`, // или для REST API: // baseUrl: `your-wordpress-site.com`, // protocol: `https`, // hostingWPCOM: false, // useACF: true, }, }, ], }
-
Запускаем сборку:
gatsby develop
Открывайhttp://localhost:8000/___graphql
— там можно посмотреть, как Gatsby видит твой контент. -
Создаём страницы из WordPress-контента:
- В
gatsby-node.js
добавляем генерацию страниц на основе данных из GraphQL.
exports.createPages = async ({ graphql, actions }) => { const { createPage } = actions const result = await graphql(` { allWpPost { nodes { id slug } } } `) result.data.allWpPost.nodes.forEach(post => { createPage({ path: `/blog/${post.slug}`, component: require.resolve(`./src/templates/post.js`), context: { id: post.id }, }) }) }
- В
- Деплой на сервер или CDN — статика, можно хоть на Netlify, хоть на свой VPS.
Примеры, схемы, практические советы
Вот тебе несколько кейсов из жизни, чтобы не наступать на чужие грабли.
Кейс | Плюсы | Минусы | Рекомендации |
---|---|---|---|
WordPress + Gatsby на одном сервере |
|
|
|
WordPress на хостинге, Gatsby на VPS |
|
|
|
WordPress headless + Gatsby + Netlify |
|
|
|
Команды и утилиты
Вот полный список команд, которые пригодятся для быстрой настройки:
# Установка WordPress (через WP-CLI)
wp core download
wp config create --dbname=yourdb --dbuser=youruser --dbpass=yourpass
wp core install --url=your-site.com --title="My Site" --admin_user=admin --admin_password=pass [email protected]
# Установка WPGraphQL
wp plugin install wp-graphql --activate
# Установка Gatsby CLI
npm install -g gatsby-cli
# Создание проекта Gatsby
gatsby new my-gatsby-site
cd my-gatsby-site
# Установка плагина для WordPress
npm install gatsby-source-wordpress
# Запуск разработки
gatsby develop
# Сборка статики
gatsby build
Похожие решения, программы и утилиты
- Netlify CMS — альтернатива WordPress для headless-режима, но не так привычно для редакторов.
- Strapi — headless CMS на Node.js, гибко, но требует отдельной настройки.
- Contentful — облачная headless CMS, быстро, но платно.
- Sanity — ещё одна headless CMS, много автоматизации, но не всем зайдёт.
Если хочется остаться на WordPress, но ускорить фронтенд — Gatsby + WPGraphQL это топовый вариант.
Статистика и сравнение
Решение | Скорость загрузки | Безопасность | Гибкость | Стоимость |
---|---|---|---|---|
WordPress (классика) | 3-5 сек | Средняя (PHP на фронте) | Высокая (плагины, темы) | Минимальная (можно на бесплатном хостинге) |
WordPress + Gatsby | 0.2-1 сек | Высокая (только API наружу) | Гибкая (React, любые интеграции) | Средняя (VPS или CDN) |
Headless CMS (Strapi, Contentful) | 0.2-1 сек | Высокая | Гибкая | Средняя/Высокая (зависит от тарифа) |
Интересные факты и нестандартные способы использования
- Можно использовать один WordPress для нескольких Gatsby-сайтов — удобно для мультиязычности или разных брендов.
- Gatsby поддерживает инкрементальную сборку — не надо пересобирать весь сайт при каждом изменении, только изменённые страницы.
- Можно автоматизировать публикацию: при каждом новом посте в WordPress срабатывает webhook, Gatsby пересобирает сайт и пушит на CDN. Всё без участия человека.
- WordPress можно держать за VPN или на локалке, а наружу отдавать только статику — безопасность на максималках.
- Gatsby позволяет легко интегрировать PWA, AMP, SSR — всё, что любят поисковики и пользователи.
Какие новые возможности открываются и чем это поможет в автоматизации и скриптах?
- Можно писать свои скрипты для автоматической сборки и деплоя (bash, Ansible, GitHub Actions, GitLab CI/CD).
- Легко интегрировать сторонние сервисы (аналитика, формы, чаты) — всё на React-компонентах.
- Масштабируемость: если трафик вырос — просто кидаешь статику на CDN, не надо апгрейдить сервер.
- Можно делать бэкапы только базы WordPress — фронтенд всегда можно пересобрать.
- Удобно для тестирования: можно поднять копию WordPress, собрать тестовую версию сайта, не трогая продакшн.
Вывод — заключение и рекомендации
Если хочется получить быстрый, безопасный и современный сайт, но не хочется отказываться от удобной WordPress-админки — связка WordPress + Gatsby это то, что доктор прописал. Ты получаешь:
- Молниеносную загрузку страниц (статический фронт, никакого PHP на проде).
- Гибкость React и экосистемы Gatsby (PWA, SSR, интеграции).
- Безопасность (WordPress можно держать за VPN, наружу только API).
- Автоматизацию (webhooks, CI/CD, скрипты для сборки и деплоя).
- Масштабируемость (статический сайт легко раздавать хоть с VPS, хоть с CDN).
Рекомендую использовать этот подход для корпоративных сайтов, блогов с большим трафиком, лендингов и порталов, где важна скорость и безопасность. Если нужен VPS или выделенный сервер для таких задач — VPS или dedicated — отличный выбор для старта.
Официальные ссылки для самостоятельного изучения:
Если остались вопросы — спрашивай в комментариях, делись опытом и не забывай делать бэкапы!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.