Разработка плагинов для WordPress — увлекательный процесс, но публикация в официальном репозитории часто вызывает вопросы у начинающих разработчиков. В этой статье я расскажу, как настроить автоматическую публикацию плагина из GitHub в WordPress.org репозиторий — процесс, который сэкономит вам часы ручной работы.
Почему автоматизация публикации важна?
Ручная публикация плагина в WordPress.org требует:
- Копирования файлов через SVN
- Обновления версии в нескольких местах
- Загрузки ассетов (иконок, баннеров)
- Создания тегов для каждой версии
Автоматизация через GitHub Actions сокращает этот процесс до одного действия — создания тега в Git.
Подготовка плагина к публикации
1. Структура проекта
Перед началом убедитесь, что ваш плагин имеет правильную структуру:
your-plugin/
├── plugin-main-file.php
├── readme.txt
├── .distignore
├── .wordpress-org/
│ ├── assets/
│ │ ├── icon-128x128.png
│ │ ├── icon-256x256.png
│ │ └── banner-1544x500.png
│ └── ...
├── package.json (опционально)
└── .github/workflows/deploy.yml
2. Ключевые файлы
readme.txt — используйте специальный формат WordPress:
=== Plugin Name ===
Contributors: yourname
Tags: plugin, tags
Requires at least: 5.8
Tested up to: 6.5
Stable tag: 1.0.0
== Description ==
Подробное описание вашего плагина.
== Installation ==
1. Загрузите плагин через WordPress
2. Активируйте в админ-панели
.distignore — файл, определяющий, что НЕ попадет в репозиторий:
.git/
.github/
node_modules/
vendor/
*.log
*.md
composer.*
package.json
webpack.config.js
Настройка автоматической публикации
1. Получение доступа к WordPress.org SVN
- Создайте плагин в WordPress.org плагин репозитории
- Сгенерируйте Application Password в аккаунте WordPress.org
- Сохраните логин и пароль
2. Настройка GitHub Secrets
В настройках вашего репозитория GitHub:
SVN_USERNAME— ваш логин WordPress.orgSVN_PASSWORD— Application Password
3. Создание workflow файла
Создайте файл .github/workflows/deploy.yml:
name: Deploy to WordPress.org
on:
push:
tags:
- "v*" # Теги типа v1.0, v2.1.0
- "[0-9]+.[0-9]+.[0-9]+" # Теги типа 1.0.0
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Extract version from tag
id: get_version
run: |
VERSION="${GITHUB_REF#refs/tags/v}"
echo "version=${VERSION}" >> $GITHUB_OUTPUT
echo "Deploying version: ${VERSION}"
- name: WordPress Plugin Deploy
uses: 10up/action-wordpress-plugin-deploy@stable
env:
SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
SLUG: "your-plugin-slug"
VERSION: ${{ steps.get_version.outputs.version }}
Процесс публикации шаг за шагом
После создания коммита, необходимо создать и опубликовать тег: Code -> Create a new release

После пуша тега:
- GitHub Actions автоматически запускает workflow
- Происходит сборка плагина (если нужно)
- Файлы копируются в WordPress.org SVN
- Создается новая версия в репозитории
- Плагин становится доступным для установки
Семантическое версионирование
Используйте SemVer:
v1.0.0— первый стабильный релизv1.0.1— патч-релиз (багфиксы)v1.1.0— минорный релиз (новые функции)v2.0.0— мажорный релиз (ломкие изменения)
Заключение
Автоматизация публикации плагинов WordPress из GitHub — не просто удобство, а необходимость для профессиональной разработки. Это позволяет:
- Сократить время на рутинные операции
- Уменьшить ошибки при публикации
- Обеспечить консистентность между версиями
- Вести историю изменений через Git
- Быстро откатывать проблемные релизы
Начальная настройка занимает 30-60 минут, но экономит часы при каждом новом релизе. Начните автоматизировать сегодня — ваши будущие релизы будут благодарны!



