Installer WordPress via Composer a souvent été difficile, heureusement il y a maintenant une solution!
WordPress
Sur GitHub il existe un projet qui est mis à jour toutes les 15 minutes avec la dernière version de WordPress. C’est aussi le plus utilisé. https://github.com/johnpbloch/wordpress
Dans le composer.json il suffit d’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 il suffit d’utiliser la commande d’installation de Composer
composer install
Dans notre dossier « wp » se trouve maintenant WordPress. Maintenant lorsque d’autres plugins veulent être installés, par défaut ceux-ci se retrouvent 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 les types de paquets 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 installé dans « wp-content/plugins/{$name} » par défaut.
WordPress Packagist
Outlandish a créé un répertoire contenant tous les plugins WordPress en mode composer. Cela se trouve sous WordPress Packagist.
Il suffit d’ajouter le paquet voulu pour 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 souci, c’est que précédemment WordPress a été installé dans le dossier cms. Donc il va falloir réécrire cela. Pour ce faire, on rajoute un « extra » avec 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 installés au bon endroit et pourrez les activer à votre guise dans la console d’administration
