如何禁止WordPress所有管理员通过后台添加插件(仅保留FTP方式)
禁止WordPress后台添加新插件的代码实现
要实现禁止所有用户(包括管理员)通过后台添加新插件,仅保留FTP上传插件的方式,可以通过添加自定义函数完成,无需额外插件。以下是具体实现方案:
核心代码实现
将以下代码添加到主题的functions.php文件中,或者创建独立的Must-Use插件(mu-plugin)文件放在wp-content/mu-plugins/目录下(后者更稳定,不会因主题更新丢失):
// 移除后台插件菜单的"添加新"选项 add_action('admin_menu', 'disable_plugin_add_new'); function disable_plugin_add_new() { remove_submenu_page('plugins.php', 'plugin-install.php'); } // 拦截直接访问插件安装页面的请求 add_action('admin_init', 'block_plugin_install_access'); function block_plugin_install_access() { global $pagenow; if ($pagenow === 'plugin-install.php') { wp_redirect(admin_url('plugins.php')); exit; } } // 禁用插件安装权限,覆盖所有用户(包括管理员) add_filter('user_has_cap', 'disable_plugin_install_cap', 10, 3); function disable_plugin_install_cap($allcaps, $cap, $args) { if (in_array('install_plugins', $cap) || in_array('upload_plugins', $cap)) { $allcaps[$cap[0]] = false; } return $allcaps; } // 移除后台顶部工具栏"添加新"菜单中的插件选项 add_action('admin_bar_menu', 'remove_admin_bar_plugin_add', 999); function remove_admin_bar_plugin_add($wp_admin_bar) { $wp_admin_bar->remove_node('new-plugin'); }
代码说明
- 移除后台菜单入口:通过
remove_submenu_page移除插件主菜单下的“添加新插件”子菜单,从视觉上隐藏操作入口。 - 拦截页面访问:检查当前后台页面,若为插件安装页则重定向到插件列表页,防止用户通过直接输入URL绕过菜单限制。
- 禁用核心权限:通过
user_has_cap过滤器覆盖所有用户的插件安装、上传权限,确保即使有用户尝试绕过视觉限制,也无法执行安装操作。 - 移除顶部栏入口:删除后台顶部工具栏“添加新”下拉菜单中的插件选项,彻底消除所有后台添加插件的操作路径。
注意事项
- 修改主题
functions.php前请备份文件,避免操作失误导致网站故障。 - 优先推荐使用Must-Use插件方式:在
wp-content/mu-plugins/目录下新建.php文件(比如disable-plugin-install.php),粘贴上述代码即可,该插件会自动激活且不受主题更新影响。
内容的提问来源于stack exchange,提问作者Larson
相关产品推荐
相关产品推荐

