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