Установка через composer
Вообще устанавливать плагин рекомендую как плагин, чтобы видеть новые версии и обновлять плагин из админки или через WP-CLI. Но, иногда просто необходимо установить плагин, например, в тему и при этом не терять возможность автоматического обновления. Как раз для таких случаев отлично подойдет установка через composer.
Установка плагина через composer.json
Здесь мы добавляем дополнительный репозиторий, откуда композер будет считывать данные о пакетах (плагинах) и имеющихся версий для них. И указываем имя пакета (плагина), который нужно установить.
Минимальный код composer.json, который вам нужно добавить чтобы все начало работать:
{ "require": { "wp-kama/kama-breadcrumbs": "^4" }, "repositories": [ { "type": "composer", "url": "https://api.wp-kama.ru/upserver/composer_repo/LICENSE_KEY" } ], "extra": { "installer-paths": { "path/to/theme/{$name}": [ "wp-kama/kama-breadcrumbs" ] } } }
LICENSE_KEY
нужно заменить на ваш ключ (ключ можно найти на этой странице профиля wp-kama).path/to/theme/
нужно заменить на путь куда нужно установить плагин.
Несколько лицензионных ключей можно указать через запятую, тогда в репозиторий будут добавлены все плагины соответствующие указанным лиц.ключам. Например:
"require": { "wp-kama/kama-breadcrumbs": "*", "wp-kama/kama-postviews": "*" }, "repositories": [ { "type": "composer", "url": "https://api.wp-kama.ru/upserver/composer_repo/LICENSE_KEY1,LICENSE_KEY2" } ],
Такая установка будет работать точно также как и любой пакет composer. Т.е. можно указывать версии и обновления будет прилетать автоматически с учетом указанной версии при запусках команд composer update
или composer update <package name>
.
Версию нужно указывать в параметре version
. Например, "version": "^3"
. Подробнее про то как указывать версии читайте здесь.
!Способы ниже не рекомендую!
Ниже старые варианты установки плагина через композер, когда еще я не сделал свой репозиторий для композера. Оставил их как примеры создания своих кастомных репозиториев из имеющихся URL на zip файлы.
Способ 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.