Если ядро WordPress уже стоит через Composer, логично так же ставить плагины: версии в composer.json / composer.lock, одинаковое окружение на всех серверах, обновления без ручного zip из репозитория. Ниже wpackagist, require/remove, активация через WP-CLI.
Как это устроено
WordPress Packagist отдаёт плагины и темы официального каталога как Composer-пакеты с префиксами wpackagist-plugin/ и wpackagist-theme/. Установщик кладёт их в wp-content/plugins (или themes) по правилам installer-paths в проекте.
Репозиторий wpackagist
В composer.json добавьте (или дополните) блок repositories:
"repositories": [
{
"type": "composer",
"url": "https://wpackagist.org"
}
]
У пакета johnpbloch/wordpress и готовых скелетов это часто уже есть. Проверьте перед дублированием.
Установка плагина
Имя пакета это slug из wordpress.org. Пример с Contact Form 7:
composer require wpackagist-plugin/contact-form-7
Пакет появится в зависимостях, файлы в каталоге плагинов. Версию можно зафиксировать: composer require wpackagist-plugin/contact-form-7:^5.9.
Активация
Composer только кладёт файлы. Включить плагин в админке или через WP-CLI:
wp plugin activate contact-form-7
В CI/CD после composer install обычно идёт скрипт с wp plugin activate для нужного списка.
Обновление
composer update # или точечно: composer update wpackagist-plugin/contact-form-7
Обновятся пакеты в рамках constraints из composer.json. Коммитьте composer.lock, чтобы prod не «уплывал» от dev. После обновления проверьте сайт и при необходимости прогоните wp plugin list.
Удаление
wp plugin deactivate contact-form-7 composer remove wpackagist-plugin/contact-form-7
Сначала деактивация (и при необходимости очистка опций плагина), потом remove. Так меньше сюрпризов в админке.
Практические замечания
- Версии. Явные constraints лучше «звёздочки»: меньше неожиданных major-обновлений.
- Премиум-плагины. Не всё есть на wpackagist; для платных пакетов private Satis/VCS или ручная поставка в репозиторий.
- Админка vs Composer. Если обновлять плагины только из UI, lock-файл разъедется с реальностью. Выберите один канал поставки.
- Безопасность. Регулярно обновляйте плагины: дыры чаще всего именно в них, не в ядре.
Итог: wpackagist + composer require + WP-CLI для activate/deactivate рабочая схема для воспроизводимого WordPress-стека. Вместе с установкой ядра через Composer это закрывает базовый lifecycle зависимостей.