从 WordPress 顶部管理工具栏(admin bar)中删除菜单项目

今天我们来介绍如何从 WordPress 顶部工具栏中,删除不需要的或者想要隐藏的菜单项目。

定位菜单元素的ID

我们需要做的第一件事,是找到要删除的菜单项目的 ID,请通过右键单击要删除的菜单项目,使用浏览器检查器查看菜单项目对应的 ID。

从 WordPress 顶部管理工具栏(admin bar)中删除菜单项目
从 WordPress 顶部管理工具栏(admin bar)中删除菜单项目

在此示例中,完整 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/

(0)
上一篇 2022年3月10日 下午12:36
下一篇 2022年3月12日 下午8:39

相关推荐

发表评论

登录后才能评论