Установка кастомных WordPress плагинов (архивов) через Композер
Если у вас есть URL на кастомный WordPress плагин, например, премиум плагин, для которого не предусмотрено авто-обновление, а также вам нужно устанавливать его через Композер. То используя инструкцию ниже вы можете создать свой репозиторий для пакета и устанавливать его как обычно. Однако, тут есть свои нюансы, но об этом ниже.
Способ 1
В composer как я понял, нельзя создать свой кастомный пакет, а потом указать в какую конкретно папку мы хотим его установить. Это работает, но только для конкретных пакетных менеджеров. Подробнее о таком способе установки можно прочитать здесь.
Вариант с популярным инсталлером composer/installers.
{ "require": { "mylocal/kama-breadcrumbs": "dev-master" }, "repositories": [ { "type": "package", "package": { "name": "mylocal/kama-breadcrumbs", "type": "wordpress-plugin", "version": "dev-master", "dist": { "url": "https://api.wp-kama.ru/upserver/download/kama-breadcrumbs/?key=LICENSE_KEY", "type": "zip" }, "require": { "composer/installers": "*" } } } ], "extra": { "installer-paths": { "path/to/theme/{$name}": [ "mylocal/kama-breadcrumbs" ] } } }
LICENSE_KEY
нужно заменить на ваш ключ (ищите в своем профиле wp-kama).path/to/theme/
нужно заменить на путь куда нужно установить плагин.
ВАЖНО! Новые версии плагина не будут скачиваться автоматически при composer update
. Чтобы она скачалась нужно удалить папку плагина. До тех пор пока папка плагина существует composer будет "думать" что все ОК, потому что версию пакета мы указываем сами в параметре "version": "dev-master"
.
Способ 2
Устанавливаем пакет mnsami/composer-custom-directory-installer, который расширяет базовый инсталлер композера и позволяет указать произвольную папку установки для типа package
.
{ "require": { "mnsami/composer-custom-directory-installer": "*", "mylocal/kama-breadcrumbs": "*" }, "repositories": [ { "type": "package", "package": { "name": "mylocal/kama-breadcrumbs", "version": "4.21", "dist": { "url": "https://api.wp-kama.ru/upserver/download/kama-breadcrumbs/?key=YOUR_LICENSE_KEY&ver=4.21", "type": "zip" } } } ], "extra": { "installer-paths": { "path/to/theme/{$name}": [ "mylocal/kama-breadcrumbs" ] } } }
LICENSE_KEY
нужно заменить на ваш ключ (ищите в своем профиле wp-kama).path/to/theme/
нужно заменить на путь куда нужно установить плагин.-
Параметр
ver
- в URL параметре&ver=4.21
нужно указать нужную версию плагина.Параметр
ver
можно вообще не указывать, тогда будет скачиваться последняя версия, однако в этом случае лучше указатьdev-master
в чтобы явно было понятно, что устанавливается всегда последняя версия:"require": { "mylocal/kama-breadcrumbs": "dev-master" } ... "version": "dev-master",
ВАЖНО! Последняя версия не будет скачиваться автоматически при composer update
, а она скачается только если удалить папку плагина. До тех пор пока папка плагина существует composer будет "думать" что все ОК, потому что версию пакета мы указываем сами в параметре "version": "dev-master"
.
Способ 3
При каждом composer update
или composer install
скачиваем последнюю (или указанную версию) плагина и перемещаем скаченные файлы в нужную папку:
{ "require": { "mylocal/kama-breadcrumbs": "dev-master" }, "repositories": [ { "type": "package", "package": { "name": "mylocal/kama-breadcrumbs", "version": "dev-master", "dist": { "url": "https://api.wp-kama.ru/upserver/download/kama-breadcrumbs/?key=YOUR_LICENSE_KEY", "type": "zip" } } } ], "scripts": { "post-update-cmd": [ "rsync -av --delete vendor/mylocal/kama-breadcrumbs path/to/theme/ && rm -rf vendor/mylocal/kama-breadcrumbs" ] } }
path/to/theme/
вам нужно заменить на путь куда хотите переместить скаченный плагин.
Важно: Это НЕ будет работать на Windows бeз WSL.
—