This is a drop in class for developers to optionally or automatically install plugin dependencies for their own plugins or themes. It can install a plugin from wp.org, GitHub, Bitbucket, GitLab, Gitea, or a direct URL.
Comprehensive information regarding WP Dependency Installer is available on the wiki.
See also: example plugin.
You can use composer to install this package within your WordPress plugin / theme.
Please ensure you are using the latest version of this framework in your composer.json
composer require afragen/wp-dependency-installer
wp-dependencies.json
file[
{
"name": "Git Updater",
"host": "github",
"slug": "git-updater/git-updater.php",
"uri": "afragen/git-updater",
"branch": "develop",
"required": true,
"token": null
},
{
"name": "Query Monitor",
"host": "wordpress",
"slug": "query-monitor/query-monitor.php",
"uri": "https://wordpress.org/plugins/query-monitor/",
"optional": true
},
{
"name": "Local Development",
"host": "wordpress",
"slug": "local-development/local-development.php",
"uri": "https://wordpress.org/plugins/local-development/",
"required": true
}
]
You will then need to update wp-dependencies.json
to suit your requirements.
functions.php
file:require_once __DIR__ . '/vendor/autoload.php';
add_action( 'plugins_loaded', static function() {
WP_Dependency_Installer::instance( __DIR__ )->run();
});
WP_Dependency_Installer
should be loaded via an action hook like plugins_loaded
or init
to function properly as it requires wp-includes/pluggable.php
to be loaded for wp_create_nonce()
.
That's it, happy blogging!
PRs are welcome against the develop
branch.