Autoload WordPress files configured via Composer that support the Wordpress Coding Standards using alleyinteractive/wordpress-autoloader. Will load the autoloaded classes defined in your package and all autoloaded classes in your dependencies.
You can install the package via composer:
composer require alleyinteractive/composer-wordpress-autoloader
{
"autoload": {
"wordpress": {
"My_Plugin_Namespace\\": "src/",
}
},
"autoload-dev": {
"wordpress": {
"My_Plugin_Namespace\\Tests\\": "tests/",
}
}
}
Once added, you can load vendor/autoload.php
as normal and the autoloader will
handle the rest. If that doesn't work, see Automatically Injecting WordPress
Autoloader.
Packages published to Packagist are required to be valid and have a
composer.json
that passed a composer validate
. Composer does not consider
wordpress
to be a valid value inside of the autoload
or autoload-dev
property. To allow packages to register autoloading in a valid format, you can
use the following format:
{
"extra": {
"wordpress-autoloader": {
"autoload": {
"My_Plugin_Namespace\\": "src/",
},
"autoload-dev": {
"My_Plugin_Namespace\\Tests\\": "tests/",
}
}
}
}
By default Composer WordPress Autoloader will automatically load the WordPress
autoloader. This is done by adding src/autoload.php
as an autoloaded file to
Composer. However, this may not always work under some circumstances including
symlinks. When necessary, you can opt to inject the
vendor/wordpress-autoload.php
file into your vendor/autoload.php
file. This
is disabled by default and be enabled by setting inject
to true
in your
composer.json
.
{
"extra": {
"wordpress-autoloader": {
"inject": true
}
}
}
composer test
Please see CHANGELOG for more information on what has changed recently.