Wordpress如何添加顶级菜单,和移除、隐藏顶级菜单?

Wordpress后台有很多我们必须要的功能,客户会误点等之类的原因,所以我们需要隐藏一些自定义菜单,但是隐藏顶级菜单,可能下面某一个子菜单是我们需要的。

首先我们先隐藏菜单,这里分为2种隐藏,一种是自带的,

隐藏自带的写这段函数即可

show_admin_bar(false);
add_filter('show_admin_bar', '__return_false');
//关闭后台菜单和删除wordpress自带一些功能
//__('Dashboard') : 控制板菜单
//__('Posts') : 文章
//__('Media') : 媒体
//__('Links') : 链接
//__('Pages') : 页面
//__('Comments') : 评论
//__('Appearance') : 外观
//__('Plugins') : 插件
//__('Users') : 用户
//__('Tools') : 工具
//__('Settings') : 设置
remove_action('welcome_panel', 'wp_welcome_panel');

function remove_menus() {
	global $menu;
	$restricted = array(
		__('Posts'),
		__('Links'),
		__('Comments'),
		__('Dashboard'),
		__('Tools'),
		__('Appearance'),
		__('Plugins') ,
		// __('Pages'),
		__('Users'),
		__('Settings')

	);
	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');
}
function wp_hide_nag() {
	remove_action( 'admin_notices', 'update_nag', 3 );
}
add_action('admin_menu','wp_hide_nag');

可以选择隐藏哪些菜单,上面有提示,修改即可。

另外一种是隐藏第三方的菜单:

function hide_edit_menu()
{
 remove_menu_page('edit.php?post_type=acf-field-group');
}
add_action('admin_menu', 'hide_edit_menu', 999);

修改里面的URL'edit.php?post_type=acf-field-group' 即可。

然后是如何添加顶级菜单,这里已添加导航栏菜单为例。

add_action('admin_menu', 'register_custom_menu_page');
function register_custom_menu_page() {
    add_menu_page('自定义菜单标题', '导航栏菜单', 'administrator', '/nav-menus.php','', 'dashicons-admin-links', 20);
}

修改title和URL即可。