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

The Method to Remove the menu of Control Panel

在开发 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');
}
使用 Hugo 构建
主题 StackJimmy 设计