Installing plugins is easy enough as long as you have a basic understanding of composer and know how to use it, and this guide will explain the process.
The first thing you need to do is make a composer file in a file named composer.json
. That may sound obvious, but then first steps often are:
{
"name": "brothman01/awesome-project",
"authors": [
{
"name": "Ben Rothman",
"homepage": "https://benrothman.org",
"role": "Developer"
}
],
"repositories": [
{
"type":"composer",
"url":"https://wpackagist.org"
}
],
"config": {
"platform": {
"php": "7.3"
},
"allow-plugins": {
"composer/installers": true
}
},
"require": {
"wpackagist-plugin/woocommerce": "dev-trunk",
"wpackagist-plugin/chatpress": "2.0.1",
"wpackagist-plugin/advanced-custom-fields": "5.12.3"
}
}
The above JSON is the final composer file, so if you are seeing things in there that don’t make sense yet, don’t worry I am going to explain them.
[We want to use composer in this project to install plugins into the plugin directory, not the usual vendor directory, so we use the oomphinc/composer-installers-extender plugin to do that by requiring it as a dependency and then setting custom installer paths in the “extra” section, and as you can see that custom install path is set for all packages of type “wordpress-plugin”.]
We want to install WordPress plugins hosted in the official repository AND we want to install them to the correct plugins
directory in the WordPress install. Wpackagist.org is a great solution for installing WordPress plugins from the official repository via composer to the correct place, so we have to add a url for that to the “repositories” section.
The rest is just requiring each plugin as a dependency package in the JSON file. To install a specific plugin from the public WordPress repository, just require wpackagist-plugin/{the-plugin-slug
} and either the version or dev-
then the svn directory to get the files from.
I hope you try this and come to agree that this process is easy thanks in large part to the work done by the developers of wpackagist, who designed their software to enable composer to do exactly this with ease. Enjoy!