You know all about WordPress plugins and may have heard of Must-Use plugins, but what about “Drop-Ins”?
In WordPress, there are three types of plugins:
- Regular plugins – in
/wp-content/plugins/
and can (generally) be activated/deactivated/updated via wp-admin’s UI. - Must-Use plugins – in
/wp-content/mu-plugins/
. Only PHP files in the mu-plugins directory itself are detected and they are always loaded—you “must use” them. You can’t deactivate them or update them via UI. You must delete or move the file to deactivate and must manually update via FTP or some other out-of-WordPress method. - Drop-Ins plugins – in the
wp-content
but only specific file names. They replace/augment very specific functionality within WordPress.
File name | Purpose | Loaded |
advanced-cache.php | Caching functionality | When WP_CACHE is set true . |
db.php | Replaces WP’s default database handling. | Always. |
db-error.php | Custom DB error message. Completely replaces the error page that usually says Error establishing a database connection . | Database Error |
install.php | Custom install scripts. Allows someone to override wp_install() or any other function in wp-admin/includes/upgrade.php | WordPress installation |
maintenance.php | Custom maintenance message. Completely replaces the Briefly unavailable for scheduled maintenance. Check back in a minute. error page. | During plugin/theme/etc updates. |
object-cache.php | Functionality specifically for an object cache. | Always. |
sunrise.php | Very early loading functions before multisite starts to load. | When SUNRISE is true. Multisite only. |
blog-deleted.php | Custom error message when loading a deleted subsite. | Attempting to access a deleted subsite. Multisite only. |
blog-inactive.php | Custom error message when loading an inactive subsite. | Attempting to access an inactive subsite. Multisite only. |
blog-suspended.php | Custom error message when loaded a suspended site. | Attempting to access a suspended subsite. Multisite only. |
The list is very specific and, in many cases, providing a quick replacement to an error page where it may not make sense to try to add via hooks or filters.
The kicker is the caching ones—advanced-cache.php or object-cache.php—are often added by the installation/activation functions of caching plugins but are not always removed when uninstalling. If the caching plugin is deleted via the file manager instead of a typical deactivation, it wouldn’t be able to delete the drop-in either.
If you run into situations where you’re trying to debug something and it seems like there is mysteriously cached items. Check out the wp-content directory and try renaming those files to force-deactivate a cache if there are seemingly no normal caching plugins active.
Leave a Reply