humanmade/mu-plugins-loader

A WordPress must-use plugin autoloader for mu-plugins in directories

Installs: 4 685

Dependents: 0

Suggesters: 0

Security: 0

Stars: 7

Watchers: 4

Forks: 0

Open Issues: 0

Type:composer-plugin

1.0.1 2023-10-17 15:26 UTC

This package is auto-updated.

Last update: 2024-05-17 16:55:39 UTC


README

A composer based must-use plugin loader for WordPress.

This package is a simple composer plugin that creates a file called loader.php in your MU plugins directory that automatically includes the plugin and files you specify.

This is useful if you want to organise and load MU plugins from a subdirectory of the mu plugins folder, as WordPress does not do this automatically.

Installation

composer require humanmade/mu-plugins-loader

Usage

The package a few options for configuration:

Using composer.json

The package will read your composer.json file during the autoload dump step of an installation for 2 configuration options:

  • extra.mu-plugins: an array of paths relative to your mu-plugins directory
  • extra.mu-plugins-path: a string path to your mu-plugins directory
    • note: this is only required if you don't specify a different path under the installer-paths configuration and also different to wp-content/mu-plugins

Example:

{
    "extra": {
        "mu-plugins": [
            "authorship/plugin.php"
        ],
        "installer-paths": {
            "/content/mu-plugins/{$name}/": {
                "humanmade/authorship",
                "type:wordpress-muplugin"
            }
        }
    }
}

Using HM_MU_PLUGINS constant

If you need to apply some logic or simply prefer to define your MU plugins list in PHP you can ignore the composer.json configuration and instead define HM_MU_PLUGINS as an array before the loader plugin is included.

The simplest way to do this is to add a mu plugin with an alphabetically lower name and define it there e.g.:

# wp-content/mu-plugins/0000-plugins.php

define( 'HM_MU_PLUGINS', [
    'authorship/plugin.php',
] );