Home » Как использовать контент WordPress в приложении Gatsby.js
Как использовать контент WordPress в приложении Gatsby.js

Как использовать контент 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 или выделенный сервер).

  1. Установи WordPress (если ещё не стоит). Можно на локалке, можно на сервере. Главное — чтобы был доступ к API.
  2. Проверь, что REST API работает:

    curl https://your-wordpress-site.com/wp-json/wp/v2/posts

    Если видишь JSON с постами — всё ок.
  3. Для GraphQL-любителей: ставим плагин WPGraphQL через админку или командой:

    wp plugin install wp-graphql --activate

    Теперь твой GraphQL-эндпоинт: https://your-wordpress-site.com/graphql
  4. Ставим Gatsby CLI (если ещё не стоит):

    npm install -g gatsby-cli
  5. Создаём новый проект Gatsby:

    gatsby new my-gatsby-site
    cd my-gatsby-site
  6. Ставим нужный плагин для WordPress:

    • Для REST API: gatsby-source-wordpress
    • Для GraphQL: gatsby-source-wordpress-experimental (или просто gatsby-source-wordpress v5+)


    npm install gatsby-source-wordpress

  7. Настраиваем 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,
          },
        },
      ],
    }
        
  8. Запускаем сборку:

    gatsby develop

    Открывай http://localhost:8000/___graphql — там можно посмотреть, как Gatsby видит твой контент.
  9. Создаём страницы из 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 },
        })
      })
    }
        
  10. Деплой на сервер или CDN — статика, можно хоть на Netlify, хоть на свой VPS.

Примеры, схемы, практические советы

Вот тебе несколько кейсов из жизни, чтобы не наступать на чужие грабли.

Кейс Плюсы Минусы Рекомендации
WordPress + Gatsby на одном сервере
  • Простая настройка
  • Всё под контролем
  • Нагрузка на сервер при сборке
  • Обновления контента требуют пересборки
  • Используй крон для автоматической сборки
  • Храни статику отдельно (например, на CDN)
WordPress на хостинге, Gatsby на VPS
  • Разделение нагрузки
  • Гибкость в настройке
  • Сложнее дебажить
  • API может тормозить (зависит от хостинга)
  • Кэшируй API-ответы
  • Следи за CORS и авторизацией
WordPress headless + Gatsby + Netlify
  • Молниеносная скорость
  • Безопасность (нет PHP на фронте)
  • Нужно автоматизировать деплой
  • Сложнее интегрировать плагины WP
  • Используй Webhooks для автосборки
  • Проверь совместимость плагинов

Команды и утилиты

Вот полный список команд, которые пригодятся для быстрой настройки:


# Установка 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 — отличный выбор для старта.

Официальные ссылки для самостоятельного изучения:

Если остались вопросы — спрашивай в комментариях, делись опытом и не забывай делать бэкапы!


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

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

Leave a reply

Your email address will not be published. Required fields are marked