今天我们来介绍如何从 WordPress 顶部工具栏中,删除不需要的或者想要隐藏的菜单项目。
定位菜单元素的ID
我们需要做的第一件事,是找到要删除的菜单项目的 ID,请通过右键单击要删除的菜单项目,使用浏览器检查器查看菜单项目对应的 ID。
在此示例中,完整 ID 将是:
id="wp-admin-bar-comments"
这里我们要获取的 ID,是 wp-admin-bar 之后的部分。所以在这个例子中,我们要删除的菜单项目的ID 是 comments
。
从顶部管理菜单栏中删除菜单
在找到了目标菜单项目的 ID 之后,我们可以在主题的 functions.php 文件中添加如下代码:
/* Remove comments menu from admin bar */
function remove_comments_menu ($wp_admin_bar) {
$wp_admin_bar->remove_node('comments');
}
add_action('admin_menu_bar','remove_comments_menu', 999);
添加该代码的作用,是将自定义函数应用到 admin_bar_menu ,并删除对应的 node。
999 优先级参数可确保 remove 函数在 add-node 函数之后执行,因为优先级越高,函数执行越晚。
在应用上面的代码时,只需要将示例菜单项目的 ID 替换为要删除的菜单的 ID。
添加代码后,重新加载页面,就会发现目标菜单项目已经不见了。此方法适用于使用 admin_bar_menu
钩子添加的任何工具菜单,但并非所有插件和主题都使用这个钩子来添加自定义菜单。
因此,如果此方法对您不起作用,可以尝试下面的方法来删除菜单。
从顶部工具栏中删除菜单的另一种方法
正如前面所提到的,有些插件使用 admin_bar_menu 钩子,在管理工具栏中添加菜单,我们可以使用上面代码来删除菜单。
但是还有许多其他插件,例如 SG Optimizer、UpdraftPlus 等,它们使用 wp_before_admin_bar_render 钩子,将它们的菜单添加到管理工具栏。
因此,如果前面的方法对您不起作用,我们可以使用下面的代码来将其删除:
/* Remove comments menu from admin bar */
function remove_comments_menu() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('comments');
}
add_action('wp_before_admin_bar_render', 'remove_comments_menu', 999);
记得将对应菜单的 ID ,变更为实际要删除的菜单的 ID。添加此段代码后,它的工作方式与前面的代码几乎相同,但有以下区别:
- 这里我们使用全局变量
$wp_admin_bar
而不是传递它 - 这里使用
remove_menu
而不是remove_node
- 这里使用的是
wp_before_admin_bar_render
钩子,而不是admin_bar_menu
然后重新加载页面,检查一下看看对应的菜单是不是被删除了。
删除默认的 WordPress 菜单
要删除下面所示默认的管理菜单,可以使用下面的代码:
/* Remove elements from wp admin bar */
function wphelp_remove_admin_menus($wp_admin_bar) {
$wp_admin_bar->remove_node('wp-logo'); //Removes WP logo
$wp_admin_bar->remove_node('site-name'); //Removes site name
$wp_admin_bar->remove_node('comments'); //Removes comments
$wp_admin_bar->remove_node('updates'); //Removes updates
$wp_admin_bar->remove_node('customize'); //Removes the customizer
$wp_admin_bar->remove_node('new-content'); //Removes Add new
$wp_admin_bar->remove_node('search'); //Removes the search
$wp_admin_bar->remove_node('my-account'); //Removes user menu
}
add_action('admin_bar_menu', 'wphelp_remove_admin_menus', 999);
如上面所示,我们通过上面的代码,可以删除后台的 LOGO、站点名称和升级等等的菜单。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/wordpress/remove-wordpress-menu-from-admin-bar/