域名服务器搞不懂?别慌。很多站长刚接手 WordPress 站点,后台菜单密密麻麻,看着就头大。尤其是“设置”这个板块,里面藏着站点标题、固定链接、媒体选项等核心配置。如果你只是负责日常内容更新,或者客户只想改文字不想动底层结构,那个庞大的“设置”菜单就是最大的干扰源。
今天不讲虚的,直接上干货。我会用图解步骤的方式,手把手教你在不动代码、不破坏主题的前提下,干净利落地把 WordPress 后台的“设置”菜单去掉。这不仅是美观问题,更是权限管理的刚需。很多外包团队或内容运营人员,根本不需要碰服务器配置,给他们开权限时,隐藏设置菜单能避免 90% 的误操作事故。
先说个真实的坑。去年有个做外贸站的客户,找了个兼职大学生写文章。结果这哥们儿手滑,在“设置”里的“固定链接”选项里改了一下结构,直接导致全站 404,百度收录全掉。后来去查百度搜索资源平台的抓取日志,发现大量页面无法访问,重新提交收录花了两周才缓过来。
这就是典型的“权限过大”导致的灾难。WordPress 的默认用户角色设计其实很粗糙,“管理员”拥有上帝视角,而“编辑”虽然不能删主题插件,但依然能看到很多敏感信息。对于非技术人员来说,后台越简单越好。
隐藏设置菜单的核心价值有三点:
但是,隐藏菜单不是删除功能。只要用户有权限,通过直接访问 wp-admin/options-general.php 还是能进去的。所以,真正的安全是“菜单隐藏 + 权限降级”双管齐下。接下来我们对比三种主流的技术方案,看看哪种最适合你。
在动手之前,先搞清楚市面上常见的三种做法:使用插件、修改主题 functions.php、使用子主题。这三种方案各有优劣,选错了不仅白忙活,还可能被主题更新覆盖。
为了让你一眼看懂,我整理了一张对比表:
| 对比维度 | 方案一:使用插件 (如 Admin Menu Editor) | 方案二:主题 functions.php 代码 | 方案三:子主题 + 代码 |
|---|---|---|---|
| 技术门槛 | 极低,勾选即可 | 中等,需懂 PHP 基础 | 高,需理解 WordPress 继承机制 |
| 可维护性 | 高,插件可独立升级 | 低,主题更新可能覆盖代码 | 极高,主题更新不影响子主题 |
| 性能影响 | 轻微增加数据库查询或钩子负载 | 几乎无额外开销 | 几乎无额外开销 |
| 灵活性 | 高,可视化拖拽排序 | 中,需写代码控制条件 | 中,需写代码控制条件 |
| 适用场景 | 临时需求、非技术人员操作 | 单一主题长期稳定使用 | 多主题切换、长期项目交付 |
| 风险等级 | 低 | 中(备份不当易丢失) | 低 |
划重点: 如果你是独立站长,且网站长期只使用这一套主题,方案二(functions.php) 是最推荐的。它不依赖第三方插件,减少攻击面,且代码可控。 如果你是给客户做交付项目,或者经常换主题,必须用方案三(子主题)。否则主题一升级,你写的代码全没了,客户会投诉你“不专业”。 方案一适合那些完全不懂代码、只想快速看到效果的老板,但我不建议在生产环境长期使用插件来改后台结构,毕竟多一个插件就多一分被拖慢的风险。
光说不练假把式。下面我把三种方案的具体代码和配置步骤都列出来,你可以直接复制使用。
虽然我不推荐长期用,但有时候应急很方便。以常用的 Admin Menu Editor 插件为例:
优点:可视化,不用碰代码。 缺点:插件可能停止更新,且不同插件兼容性不一。
这是最通用的方法。我们需要利用 WordPress 的 admin_menu 钩子函数。
操作步骤:
functions.php 文件(建议先备份)。// 隐藏设置菜单
function hide_wp_settings_menu() {remove_menu_page( 'options-general.php' ); // 移除主设置菜单
}
add_action( 'admin_menu', 'hide_wp_settings_menu' );// 进阶:如果只想对非管理员用户隐藏,可以加判断
// function hide_wp_settings_menu_for_editors() {
// if (!current_user_can('administrator')) {
// remove_menu_page( 'options-general.php' );
// }
// }
// add_action( 'admin_menu', 'hide_wp_settings_menu_for_editors' );
代码解析:
remove_menu_page:这是 WordPress 内置函数,用于移除后台菜单项。'options-general.php':这是“设置”菜单对应的 slug。如果你想隐藏“外观”,就用 'themes.php';隐藏“插件”,就用 'plugins.php'。add_action:将我们的函数挂载到后台加载菜单的时机上。注意: 这段代码对所有用户生效。如果你希望管理员还能看到,而编辑看不到,请启用下方注释部分的代码。
如果你担心主题更新覆盖代码,或者你想保持主题纯净,子主题是最佳实践。
操作步骤:
your-theme-child。style.css,头部写入主题信息。functions.php。functions.php 中写入与方案二相同的代码。子主题 functions.php 示例:
<?php
// 子主题加载父主题样式
function my_child_theme_enqueue_styles() {$parent_style = 'your-theme-style'; // 替换为父主题 style.css 中的样式句柄wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ) );
}
add_action( 'wp_enqueue_scripts', 'my_child_theme_enqueue_styles' );// 隐藏设置菜单
function hide_wp_settings_menu_child() {remove_menu_page( 'options-general.php' );
}
add_action( 'admin_menu', 'hide_wp_settings_menu_child' );
?>
为什么子主题更安全? WordPress 的核心设计原则就是“可扩展而不侵入”。当你使用子主题时,即使父主题(比如 Divi、Astra)进行了大版本更新,甚至重构了目录结构,你的子主题代码依然完好无损。这对于长期运营的站点至关重要。
代码写好了,直接保存就能生效吗?不一定。这里有两个常见的坑,我踩过无数次,你务必注意。
坑点一:缓存导致代码不生效
很多站长加了代码,刷新后台发现菜单还在。别急,大概率是缓存插件在捣乱。
坑点二:权限混淆导致的“假隐藏”
有些站长反馈:“我代码加了,但是客户说还是能看到。” 这通常是因为客户用的是“超级管理员”账号,而你的代码逻辑里可能写了“仅对非管理员隐藏”。
current_user_can 的判断包裹。坑点三:主题冲突
某些商业主题(如 Elementor 模板库主题)可能会在 admin_menu 钩子上做复杂的菜单重组。如果你的 remove_menu_page 执行时机比主题的晚,可能无效。
// 默认优先级是 10,可以尝试设为 11 或更晚
add_action( 'admin_menu', 'hide_wp_settings_menu', 11 );
或者,直接在子主题中覆盖主题的菜单逻辑,但这需要更深的主题代码分析能力。安全加固建议:
隐藏菜单只是“障眼法”。为了真正的安全,我建议在 functions.php 中再加一层防护,禁止特定角色直接访问设置页面。
// 禁止编辑及以下角色直接访问设置页面
function block_direct_access_to_settings() {if (!current_user_can('administrator') && isset($_SERVER['SCRIPT_NAME']) && strpos($_SERVER['SCRIPT_NAME'], 'options') !== false) {wp_die( '权限不足', '无权访问', array( 'response' => 403 ) );}
}
add_action( 'admin_init', 'block_direct_access_to_settings' );
这段代码的作用是:如果一个用户不是管理员,且他试图通过 URL 直接访问 wp-admin/options-*.php,直接跳出 403 错误页面。这才是真正的“去设置”。
回到最初的问题:wordpress怎么把设置菜单去除,哪种方式最好?
我的建议非常明确:
关于薪资与地区差异的补充(针对从业者):
如果你是通过提供这项服务来获客或提升职业竞争力,要注意市场定价。
另外,培训机构选择也是一大坑。很多培训班教的是“插件堆砌”,让你去装各种“后台美化”插件。记住,真正的 WordPress 开发能力,体现在对钩子(Hooks)、模板层级(Template Hierarchy)和权限系统的理解上。能独立写出 remove_menu_page 并解释其原理的人,比装 10 个插件的人更有价值。
最后,分享一个百度搜索资源平台的建议:后台结构的变化,虽然不直接影响前端 SEO,但如果你修改了固定链接结构(在设置里),务必去百度资源平台提交新的站点地图。后台菜单的隐藏不会触发这个,但如果你为了“去设置”而顺手改了 URL 结构,那就要小心了。
你更倾向模板建站还是定制开发?欢迎评论