13

I'm trying to load plugins automatically by putting the plugins into mu-plugins folder. But if the plugin is put in a folder, it isn't loaded. I tried some popular plugins such as W3 Total Cache, WordPress SEO By Yoast, but all of them are not loaded.

Does WordPress only loads plugins which are just single files in mu-plugins?

3 Answers 3

18

Does WordPress only loads plugins which are just single files in mu-plugins?

No, they do not need to be single files but you cannot use plugins in their own subfolders as in the standard plugins/ folder.

The main plugin file (one with the specified plugin header info) has to be right there in mu-plugins/. Other files can be put in a subfolder and referenced from there.

I used it with my own plugins. I've never tried moving any robust plugin in there.

Also note that not all plugins are must-use-compatible
see http://codex.wordpress.org/Must_Use_Plugins#Caveats

1
  • Still the case in 2017. Weird, as it would be incredibly helpful to lock plugins in the MU directory (in their own full directories) for clients who like to go around turning things off and on just for kicks.
    – Ian
    Commented Sep 11, 2017 at 16:29
6

I've recently faced this very issue and in order to avoid mixing all plugins or patching files to keep organization, I've found that you can actually keep all plugins within separate sub-folders and create a symbolic link in the the mu-plugins folder pointing to the plugin's main file within the respective sub-folder.

I hope that this information can become helpful to others in the future!

2
  • 1
    This is very helpful, thanks Commented Jan 6, 2020 at 8:11
  • 1
    Three years since this answer was given. Still very helpful! Thank you!
    – DaveyJake
    Commented Oct 8, 2021 at 7:12
1

I have been working on running WordPress inside Docker containers, and am using mu-plugins to run scripts on the server. I found out there is a global constant in WordPress called WPMU_PLUGIN_DIR that will help solve this problem.

Create your custom plugins in mu-plugin sub-directories as needed, and then load them from a single file. Example:

wp-content/mu-plugins/foo/bar.php
wp-content/mu-plugins/another/index.php

Then create a single file in the mu-plugins and name it anything.

For example, create wp-content/mu-plugins/load.php with the following code

<?php
require(WPMU_PLUGIN_DIR . '/foo/bar.php');
require(WPMU_PLUGIN_DIR . '/another/index.php');

You will only see the load.php under mu-plugins in the backend, but all of your functions will load from this single script.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.