WordPress移除指定的控制面板菜单的方法

在开发wordpress主题的过程当中,通常我们会对面板菜单进行精简或者对部分设置菜单进行屏蔽,可以通过Wordpress的动作钩子在主题目录的functions.php文件下进行相关操作。

方法一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

add_action( 'admin_menu', 'mkr_remove_ad_menus' );

function mkr_remove_ad_menus(){

remove_menu_page( 'index.php' ); //仪表页面,控制台首页

remove_menu_page( 'edit.php' ); //文章页面

remove_menu_page( 'upload.php' ); //多媒体页面

remove_menu_page( 'edit.php?post_type=page' ); //页面管理

remove_menu_page( 'edit-comments.php' ); //评论菜单

remove_menu_page( 'themes.php' ); //主题个性设置

remove_menu_page( 'plugins.php' ); //插件页面

remove_menu_page( 'users.php' ); //用户页面

remove_menu_page( 'tools.php' ); //工具页面

remove_menu_page( 'options-general.php' ); //设置页面

}

如果是移除单个菜单,比如设置界面:

1
remove_menu_page( 'options-general.php' ); //设置页面

也可以移除插件生成的菜单,只要复制链接中的标识文件,例如隐藏pods字段管理

http://xxx.com/wp-admin/admin.php?page=pods

可以使用函数:

1
remove_menu_page( 'admin.php?page=pods' );

方法二

直接在 function.php 加入如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
//remove menus
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(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}
}
if ( is_admin() ) {
add_action('admin_menu', 'remove_menus');
}