Installer WordPress et des plugins avec Composer
Installer WordPress via Composer a souvent été difficile, heureusement il y a maintenant une solution!
WordPress
Sur Github il existe un projet qui est actuellement mis-à-jour toutes les 15 minutes avec la dernière version de WordPress. C’est aussi la plus utilisée. https://github.com/johnpbloch/wordpress
Dans le composer.json simplement indiquer le nom du projet. Dans cet exemple, on peut aussi indiquer dans quel dossier wordpress sera installé.
{ "require": { "php": ">=5.4", "johnpbloch/wordpress": "4.2" }, "extra": { "wordpress-install-dir": "wp" } }
Ensuite simplement utiliser la commande d’installation de composer
composer install
Dans notre dossier « wp » se trouve maintenant wordpress. Maintenant lorsque d’autre plugins veulent être installé, par défaut ceux-ci se retrouve dans le dossier /vendor. Pour installer les plugins directement dans le dossier voulu, on va devoir se faire aider par composer-installer.
Celui-ci permet d’utiliser d’utiliser les types de packets et de les installer au bon endroit.
Composer Installer
composer-installers
lets a package specify its type and a custom install location. They have a few types already included that we care about:
- wordpress-plugin => wp-content/plugins/{$name}/
- wordpress-theme => wp-content/themes/{$name}/
- wordpress-muplugin => wp-content/mu-plugins/{$name}/
Donc n’importe quel paquet avec le type « wordpress-plugin » sera automatiquement installer dans « wp-content/plugins/{$name} » par defaut.
WordPress Packagist
Outlandish a créé un repértoire contenant tous les plugins WordPress en mode composer, cela se trouve sous WordPress Packagist.
Il suffit d’ajouter le paquet voulu et ainsi installer le plugin voulu.
{ "repositories": [ { "type": "composer", "url": "http://wpackagist.org" } ], "require": { "php": ">=5.4", "johnpbloch/wordpress": "4.2", "wpackagist-plugin/advanced-custom-fields": "*", }, "extra": { "wordpress-install-dir": "cms" } }
sauf que…
Les Plugins
Le soucis, c’est que précédemment WordPress a été installé dans le dossier cms. Donc il va falloir récrire cela, pour se faire, on rajoute un « extra » avec le la solution voulue
{ "repositories": [ { "type": "composer", "url": "http://wpackagist.org" } ], "require": { "php": ">=5.4", "johnpbloch/wordpress": "4.2", "wpackagist-plugin/advanced-custom-fields": "*", }, "extra": { "wordpress-install-dir": "cms", "installer-paths": { "cms/wp-content/plugins/{$name}": ["type:wordpress-plugin"] } } }
Ainsi vous vous retrouverez avec les plugins installer au bon endroit et pouvez les activer à votre guise dans la console d’adminsitration