📖 Язык документации: Русский (текущий) | English
Современная блочная тема WordPress для игровых магазинов с поддержкой полного редактирования сайта и кастомными блоками на React.
- Блочная тема: Современная FSE (Full Site Editing) тема, оптимизированная для игровых магазинов
- Кастомные блоки: Блоки Gutenberg на React для расширенной функциональности
- Основной плагин: Базовая функциональность и кастомизация
- MU плагин: Обязательный плагин для функций всего сайта
- Автоматизированный деплой: CI/CD pipeline на GitHub Actions
game-store/
├── .github/workflows/
│ └── CICD.yml # Пайплайн автоматического деплоя
├── docs/
│ └── ru/ # Русская документация
├── mu-plugins/
│ └── gamestore-general.php # Обязательный плагин
├── plugins/
│ ├── blocks-gamestore/ # Кастомные React блоки
│ └── core-gamestore/ # Плагин основной функциональности
├── themes/
│ └── game-store/ # Основная блочная тема
├── docker-compose.yml # Среда локальной разработки
├── wp-version-control.cfg # Управление версиями WordPress
└── README.md # Главный файл
Назначение: Блочная тема WordPress с поддержкой полного редактирования сайта (FSE)
Ключевые файлы и директории:
themes/game-store/style.css- основные стили темы и мета-информацияthemes/game-store/theme.json- конфигурация темы, цветовая палитра, типографикаthemes/game-store/templates/- HTML шаблоны для разных типов страницthemes/game-store/patterns/- готовые паттерны блоков для быстрой вставкиthemes/game-store/parts/- части темы (header, footer)
Зачем нужна: Обеспечивает визуальную основу сайта, определяет дизайн-систему, цвета, шрифты и общий внешний вид. FSE позволяет редактировать макет через интерфейс WordPress без кода.
Назначение: React-компоненты для создания специализированных блоков Gutenberg
Структура:
plugins/blocks-gamestore/src/- исходный код блоков на Reactplugins/blocks-gamestore/build/- скомпилированные блоки для продакшенаplugins/blocks-gamestore/package.json- зависимости и скрипты сборки
Зачем нужны: Расширяют стандартный набор блоков WordPress специфическими элементами для игровых магазинов (карточки игр, галереи, рейтинги и т.д.). React обеспечивает интерактивность и современный UX.
Назначение: Централизованная логика и функциональность сайта
Что содержит:
- Кастомные post types (типы записей для игр, обзоров)
- API интеграции (платежные системы, каталоги игр)
- Административные настройки
- Хуки и фильтры WordPress
Зачем нужен: Отделяет бизнес-логику от представления, обеспечивает переносимость функций между темами, управляет данными специфичными для игрового магазина.
Назначение: Критически важная функциональность, которая должна работать всегда
Местоположение: mu-plugins/ (Must Use plugins) - автоматически активируются
Что делает:
- Базовые настройки безопасности
- Обязательные редиректы и rewrites
- Системные хуки, которые нельзя отключить
- Инициализация констант проекта
Зачем в отдельной папке: MU-плагины нельзя отключить через админку WordPress, что критично для стабильности сайта. Они загружаются раньше обычных плагинов и всегда активны.
- Node.js 18+
- Docker & Docker Compose
- Git
-
Клонирование репозитория
git clone https://github.com/GKVSO/GameStore.git> cd game-store
-
Запуск среды разработки
docker-compose up -d
-
Сборка кастомных блоков
cd plugins/blocks-gamestore npm install npm run start
# Режим разработки с горячей перезагрузкой
npm run start
# Продакшн сборка
npm run build
# Форматирование кода
npm run format
# Линтинг
npm run lint:js
npm run lint:css
# Создание zip архива плагина
npm run plugin-zipДля автоматического деплоя необходимо настроить следующие секреты в вашем репозитории GitHub:
| Название секрета | Описание | Пример |
|---|---|---|
SERVER_HOST |
IP адрес сервера или домен | 192.168.1.100 или example.com |
SERVER_USER |
Имя пользователя SSH | ubuntu |
SERVER_SSH_PASSWORD |
Пароль SSH | your-secure-password |
SERVER_PORT |
Порт SSH (обычно 22) | 22 |
SERVER_DEV_TARGET_PATH |
Путь для деплоя разработки | /var/www/dev.example.com |
SERVER_PROD_TARGET_PATH |
Путь для продакшн деплоя | /var/www/example.com |
- Перейдите в ваш репозиторий GitHub
- Откройте Settings → Secrets and variables → Actions
- Нажмите New repository secret
- Добавьте каждый секрет с соответствующим значением
Файл wp-version-control.cfg содержит URL для загрузки WordPress:
https://wordpress.org/latest.zip
Это обеспечивает единообразие версий WordPress между деплоями.
- Автоматический деплой разработки: Push в ветку
dev - Автоматический продакшн деплой: Создание релиза
- Ручной деплой: Через веб-интерфейс GitHub Actions с выбором окружения и версии WordPress
- Перейдите в ваш репозиторий GitHub
- Откройте вкладку Actions
- Выберите workflow GameStore Deploy
- Нажмите Run workflow
- Выберите параметры:
- Environment:
devилиprod - WordPress version: оставьте пустым для использования версии из
wp-version-control.cfgили укажите конкретную версию (например,6.3.2)
- Environment:
-
Подготовка
- Загрузка WordPress из
wp-version-control.cfg - Упаковка плагинов, тем и mu-плагинов
- Загрузка WordPress из
-
Передача файлов
- Загрузка WordPress и пакетов контента на сервер
- Включение режима обслуживания
-
Обновление ядра WordPress
- Резервное копирование существующей конфигурации
- Замена файлов ядра WordPress (сохранение
wp-config.php) - Обновление директорий admin и includes
-
Обновление контента
- Обновление плагинов, тем и mu-плагинов
- Сохранение существующих загрузок и конфигураций
-
Очистка
- Отключение режима обслуживания
- Удаление временных файлов
- Проверка деплоя
- Деплой без простоя: Режим обслуживания предотвращает сломанные состояния
- Полное обновление WordPress Core: В отличие от стандартных деплоев, где обновляются только темы и плагины, данный подход загружает и заменяет весь WordPress Core целиком. Это критично для крупных проектов, где важен строгий контроль версий
- Контроль версий WordPress: Файл
wp-version-control.cfgпозволяет зафиксировать конкретную версию WordPress для всех окружений, что исключает несовместимость и обеспечивает стабильность - Селективные обновления: Сохраняет
wp-config.phpи директорию uploads с медиафайлами - Автоматическая очистка: Удаляет временные файлы после деплоя
- Пути для разных сред: Разные пути для dev/prod
-
Создание нового блока
cd plugins/blocks-gamestore npx @wordpress/create-block new-block-name -
Процесс разработки
npm run start # Запуск сервера разработки # Редактирование файлов в src/ # Браузер автоматически обновляется
-
Продакшн сборка
npm run build
- Редактирование файлов шаблонов в
themes/game-store/templates/ - Изменение паттернов в
themes/game-store/patterns/ - Обновление стилей в
themes/game-store/style.css - Настройка темы в
themes/game-store/theme.json
- Сделайте fork репозитория
- Создайте ветку для функции
- Внесите изменения, следуя стандартам кодирования WordPress
- Протестируйте локально с Docker
- Отправьте pull request
Этот проект лицензирован под GPL v2 или более поздней версией - подробности в файле LICENSE.
GKVSO
- Telegram: @GKVSO
📖 Документация: Русский (текущий) | English