添加删除WordPress后台管理菜单分隔符

1638553026 20211203173706 61aa55c220fd6

不知道大家有没有注意过WordPress后台仪表盘和评论菜单下面有个空的分隔符,而其它菜单下面却没有,如下图:

分隔符代码位于wp-admin目录menu.php文件中。

第62行:

$menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' );

184行:

$menu[59] = array( '', 'read', 'separator2', '', 'wp-menu-separator' );

很多年前就有用户反馈给WP官方建议删除分隔符,官方说分隔符用于区别分隔不同的管理模块,不预采纳,但分隔符没有任何样式只有个高度,真没有保留的意义。

删除分隔符

如果你也和我一样看着这个突兀的间距空格就是不顺眼,那么这里教你删除这个分隔符,最简单的方法是直接删除menu.php文件中那两行代码,不过下次更新程序还要再次删除,比较麻烦,一劳永逸的方法:

将下面代码添加到主题函数模板functions.php中即可。

function zm_remove_menu() {
	global $menu;
	unset($menu[4]);
	unset($menu[59]);
}
add_action('admin_head', 'zm_remove_menu');

如果还想删除其它的菜单项,可以打开menu.php文件查看对应的菜单项的位置编号比如媒体为$menu[10],照猫画虎在上面代码中加上一句:

unset($menu[10]);

以此类推出。

默认菜单位置编号

2 仪表盘 4 分隔符 5 文章 10 媒体 15 链接 20 页面 25 评论 59 分隔符 60 外观 65 插件 70 用户 75 工具 80 设置 99 分隔符

注:有些插件会将自己菜单加到文章的上面,会影响上面的编号。

附其它删除菜单的方法展开收缩

方法一

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)]);}
	}
}
add_action('admin_menu', 'remove_menus');

方法二

add_action( 'admin_menu', 'my_remove_menu_pages' );
function my_remove_menu_pages() {
	remove_menu_page('link-manager.php');
	remove_menu_page('themes.php');
	remove_submenu_page( 'themes.php', 'themes.php' );
	remove_submenu_page( 'themes.php', 'theme-editor.php' );
	remove_submenu_page( 'themes.php', 'themes.php?page=custom-background' );
	remove_submenu_page( 'widgets.php', 'theme-editor.php' );
	remove_menu_page('tools.php');
	remove_menu_page('upload.php');
	remove_menu_page('edit-comments.php');
	remove_menu_page('plugins.php');
	remove_menu_page('admin.php?page=w3tc_general');
	remove_menu_page('admin.php?page=better_wp_security');
	remove_menu_page('admin.php?page=wpcf7');
	remove_submenu_page( 'index.php', 'update-core.php' );
	remove_submenu_page( 'options-general.php', 'options-discussion.php' );
	remove_submenu_page( 'options-general.php', 'options-writing.php' );
	remove_submenu_page( 'options-general.php', 'options-reading.php' );
	remove_submenu_page( 'options-general.php', 'options-permalink.php' );
	remove_submenu_page( 'options-general.php', 'options-media.php' );
}

添加分隔符

作为主题设计者如果想在主题自定义菜单部分添加分隔符,用于提示用户这是主题特有的,例如在编号10的媒体菜单下添加,可以这么写:

add_action('admin_menu', function () {
	global $menu;
	$menu[11] = ['', 'read', '', '', 'wp-menu-separator'];
});

定义分隔符样式

想定义这个分隔符样式可以这么写

function zm_separator_style(){
	echo'<style type="text/css">.separator {border-bottom: 1px solid #2271b1;}</style>';
}
add_action('admin_head', 'zm_separator_style');

同样添加到主题函数模板functions.php中。

移动菜单位置

如果想自定义菜单位置,例如将文章菜单移动到媒体菜单下面,可以这么写:

function zm_move_menu () {
	global $menu;
	$menu[11] = $menu[5]; // 将编号5的文章菜单移动到编号10的媒体菜单下
	unset($menu[5]); // 移除原文章菜单
}
add_action('admin_menu', 'zm_move_menu');

其它以此类推。

 

Posted in WordPress建站笔记.