### [WordPress企业建站系列:后台删除不需要的侧边栏菜单](https://www.prosaas.cn/article/7173) **Published:** 2023-03-22T08:54:22 **Author:** 5201314 **Excerpt:** 本文是WordPress企业建站系列教程的第一篇文章,带大家聊聊WordPress后台怎么删除不需要的侧边栏菜… 本文是WordPress企业建站系列教程的第一篇文章,带大家聊聊WordPress后台怎么删除不需要的侧边栏菜单,希望对大家有所帮助。 ![](//zhiqipro.oss-cn-beijing.aliyuncs.com/2023/12/20231212125809740.jpg) ### **自定义后台的侧边栏顶级菜单**      首先让我们看看,什么是后台的侧边栏菜单: ![](//zhiqipro.oss-cn-beijing.aliyuncs.com/2023/12/20231212125809407.png)      上图就是使用管理员账号登陆后看到的侧边栏所有的菜单项,WordPress给不同角色的用户定义了不同功能的使用权限,所以不同角色的用户后台所看到侧边栏菜单项都是不一样的。这个时候需求又来了,有些时候即使是管理员,部分菜单也是用不到了,例如用WordPress来建一个企业介绍性的网站,该站点根本没有添加评论功能,那么侧边栏的**评论**菜单是用不着的,如果让企业用户看到,他们会感到很迷惑。所以最好的办法是,根据实际情况,把不该有的侧边栏管理菜单删掉。具体实现办法是在当前主题的functions.php 第一个 function remove\_menus() { global $menu; $restricted = array(\_\_('Dashboard'), \_\_('Posts'), \_\_('Media'), \_\_('Links'), \_\_('Pages'), \_\_('Appearance'), \_\_('Tools'), \_\_('Users'), \_\_('Settings'), \_\_('Comments'), \_\_('Plugins')); end ($menu); while (prev($menu)){ $value = explode(' ',$menu\[key($menu)\]\[0\]); if(strpos($value\[0\], '<') === FALSE) { if(in\_array($value\[0\] != NULL ? $value\[0\]:"" , $restricted)){ unset($menu\[key($menu)\]); } } else { $value2 = explode('<', $value\[0\]); if(in\_array($value2\[0\] != NULL ? $value2\[0\]:"" , $restricted)){ unset($menu\[key($menu)\]); } } } } if ( is\_admin() ) { // 删除左侧菜单 add\_action('admin\_menu', 'remove\_menus'); } ### **自定义要去除的顶级菜单** 以上代码核心部分是一个函数remove\_menus(),然后通过WordPress的动作接口函数add\_action来执行remove\_menus函数。在remove\_menus函数中,通过$restricted数组来定义需要删除哪些菜单项,以上$restricted数组提供了全部菜单项,也就是说如果你全部将以上代码不做修改地复制到functions.php,那你的WordPress后台就没有任何菜单了,你应该根据实际需要去除菜单,下面讲讲$restricted各个数组项对应的菜单: - \_\_('Dashboard') : 控制板菜单 - \_\_('Posts') : 文章 - \_\_('Media') : 媒体 - \_\_('Links') : 链接 - \_\_('Pages') : 页面 - \_\_('Comments') : 评论 - \_\_('Appearance') : 外观 - \_\_('Plugins') : 插件 - \_\_('Users') : 用户 - \_\_('Tools') : 工具 - \_\_('Settings') : 设置 例如你只想去除**评论**和**工具**菜单,你只需改写以上代码第3行的$restricted数组: $restricted = array(\_\_('Comments'), \_\_('Tools')); ### **删除不必要的子菜单** WordPress后台的顶级菜单下面还有子菜单,当然有些子菜单是用不到的,我们也可以将其删除,WordPress 3.1以后的版本只需用到一个函数`remove_submenu_page( $menu_slug, $submenu_slug )`,这里有两个参数,$menu\_slug是子菜单所在顶级菜单的缩略名,$submenu\_slug为子菜单的缩略名,那如何获得这两个缩略名呢?例如,点击顶级菜单**设置**,链接地址类似: http://example/wp-admin/options-general.php 那么顶级菜单**设置**的缩略名为options-general.php,也就是去除http://example/wp-admin/后剩下的东西,依次类推;接着点击顶级菜单**设置**下面的子菜单**隐私**,会打开以下网址: http://example/wp-admin/options-privacy.php 那么子菜单**隐私**的缩略名为options-privacy.php,好了,就这么简单,下面是实现代码,: function remove\_submenu() { // 删除"设置"下面的子菜单"隐私" remove\_submenu\_page( 'options-general.php', 'options-privacy.php' ); // 删除"外观"下面的子菜单"编辑" remove\_submenu\_page( 'themes.php', 'theme-editor.php' ); } if ( is\_admin() ) { add\_action('admin\_init','remove\_submenu'); } ### **根据用户角色去除菜单** 如果你想按用户角色来去除相应的侧边栏菜单,那就再做一下用户等级的判断就可以了,给第11行的add\_action添加判断,改写成: function remove\_menus() { global $menu; // 这里$restricted设置了评论和工具菜单 $restricted = array(\_\_('Comments'), \_\_('Tools')); end ($menu); while (prev($menu)){ $value = explode(' ',$menu\[key($menu)\]\[0\]); if(in\_array($value\[0\] != NULL?$value\[0\]:"" , $restricted)){unset($menu\[key($menu)\]);} } } function remove\_submenu() { remove\_submenu\_page( 'options-general.php', 'options-privacy.php' ); } global $current\_user; get\_currentuserinfo(); //如果当前用户的等级小于3,那么就删除对应的菜单 if ($current\_user->user\_level < 3 && is\_admin()) { add\_action('admin\_menu', 'remove\_menus'); add\_action('admin\_init','remove\_submenu'); }      在WordPress后台 – 用户那里,管理员可以查看 / 编辑用户的角色,以下是用户角色和其等级的对应关系: - 0 级对应 **订阅者** - 1 级对应 **投稿者** - 2 – 4 级对应 **作者** - 5 – 7 级对应 **编辑** - 8 – 10 级对应 **管理员**      WordPress 3.0 之后将逐渐弃用用户数字等级,推荐使用户权限,可以用函数current\_user\_can()来判断用户权限。 ### **使用超简单的插件**      下面推荐一个使用超简单的插件,不需要任何编码,只需拖拖鼠标就可以实现上面所说的大部分功能。插件名称是:Admin Menu Editor,可以点此前往WordPress官方下载,启用后到设置 - Menu Editor,就可以编辑后台的菜单了,还可以添加外链菜单,可以调整菜单顺序等等,剩下的你自己体验吧! 推荐学习:《WordPress教程》 以上就是WordPress企业建站系列:后台删除不需要的侧边栏菜单的详细内容,更多请关注知企PROSAAS其它相关文章! **Categories:** WordPress ---