
WordPress 的 MU 插件(Must-Use Plugins)指“必须启用”的插件机制:只要把插件文件放到指定目录,WordPress 会在每次加载时自动引入,无需在后台启用,也不能在后台停用(除非你从文件系统移走/删除)。
1. MU 插件目录与加载规则
- 目录:
/wp-content/mu-plugins/ - 只要该目录下存在
.php文件,WordPress 就会自动加载它们。 - 加载顺序:一般是按文件名排序依次加载(不依赖后台启用顺序)。
注意点:
- 默认只加载 mu-plugins 目录第一层的 PHP 文件;子目录里的文件不会自动加载,除非你在第一层放一个“加载器”去
require子目录文件。
2. MU 插件与普通插件的区别
| 项目 | 普通插件(plugins) | MU 插件(mu-plugins) |
|---|---|---|
| 启用方式 | 后台启用/停用 | 自动启用,后台无法停用 |
| 位置 | /wp-content/plugins/ | /wp-content/mu-plugins/ |
| 适合场景 | 功能插件、可选功能 | 强制功能、底层修复、全站策略 |
| 可见性 | 插件列表可见 | 后台有单独“必须使用”区域(有时不明显) |
| 加载时机 | 较晚(在 MU 之后) | 更早(先于普通插件加载) |
3. 典型用途(你这种场景尤其适合)
MU 插件常用来放“必须生效、不能被误关”的逻辑,比如:
- 全站安全策略:强制 HTTPS、限制访问、统一 Header 等
- 缓存/性能兼容修复:比如你前面遇到的多域名 + WP Rocket 的域名规范化、缓冲替换
- 多站点网络级别规则:全网统一的过滤、重定向、日志
- 运维级逻辑:调试开关、强制禁用某些功能、临时热修复
因为 MU 插件加载更早,常用于“抢在别的插件之前”注入规则。
4. 如何创建一个 MU 插件(最小示例)
- 新建目录:
/wp-content/mu-plugins/(没有就创建) - 新建文件:
/wp-content/mu-plugins/my-mu-plugin.php
内容示例:
<?php
/**
* Plugin Name: My MU Plugin
* Description: Example MU plugin.
*/
defined('ABSPATH') || exit;
add_action('init', function () {
// 这里写你的必须执行逻辑
});
保存即可生效,不需要后台操作。
5. 子目录管理(建议做法)
如果你想把 MU 插件拆成多个文件,推荐做一个加载器:
/wp-content/mu-plugins/loader.php
<?php
defined('ABSPATH') || exit;
foreach (glob(__DIR__ . '/my-mu/*.php') as $file) {
require_once $file;
}
然后把真正逻辑放到:/wp-content/mu-plugins/my-mu/*.php
6. MU 插件的限制与注意事项
- 后台不能禁用,排错时要记得去服务器把文件临时改名/移走。
- 更新不受 WordPress 插件更新机制管理(要你自己维护)。
- 多人协作时建议用清晰命名与注释,避免“忘了有 MU 插件在生效”。
声明:1、本站大部分资源均为网络采集所得,仅供用来学习研究,请于下载后的24h内自行删除,正式商用请购买正版。2、所有汉化类文件和个别标注了“原创”的产品均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。3、如若本站内容侵犯了原著者的合法权益,请携带相关版权文件联系我们进行下架或删除。4、虚拟下载类资源具有可复制性,一经下载后本站有权拒绝退款或更换其他商品!

评论0 注意:评论区不审核也不处理售后问题!如有售后问题请前往用户中心提交工单以详细说明!