Wordpress从admin-bar工具条移除菜单项

在 WordPress 中屏蔽插件添加到 admin bar(管理工具栏)的菜单项,可以通过自定义代码实现,具体步骤如下:

方法一:通过wp_before_admin_bar_render 钩子移除菜单

你可以将以下代码添加到当前主题的 functions.php 文件,或者使用站点专用插件:

function remove_plugin_admin_bar_menu() {
    global $wp_admin_bar;

    // 检查并移除指定的菜单项(通过菜单项ID)
    // 例如:移除某个插件添加的菜单项
    $wp_admin_bar->remove_menu('menu_id');  // 'menu_id' 替换为插件添加菜单的 ID
}
add_action('wp_before_admin_bar_render', 'remove_plugin_admin_bar_menu', 999);

方法二:通过禁用admin_bar_menu 钩子

如果你知道具体插件使用了哪个钩子来添加菜单,可以通过以下方式禁用它:

function disable_plugin_admin_bar_menu() {
    // 假设插件使用的是 admin_bar_menu 钩子
    remove_action('admin_bar_menu', '插件添加菜单的函数名称', 999);
}
add_action('init', 'disable_plugin_admin_bar_menu');

方法三:直接通过CSS样式禁止

经过实测,方法1不管用呢,至于方法2,我不知道插件使用了什么钩子,所以无法使用,不想再浪费时间。先写一个函数,通过把对应的id设置为display:none 来临时屏蔽一下。

function hide_admin_bar_menus_with_css() {
    if ( ! is_admin_bar_showing() ) {
        return;
    }
    ?>
    <style>
        /* 隐藏 WP Mail SMTP Admin Bar 菜单 */
        #wp-admin-bar-wp-mail-smtp-menu { 
            display: none !important; 
        }
        /* 在此处添加更多需要隐藏的菜单项 */
        #wp-admin-bar-perfmatters,
        #wp-admin-bar-wpforms-menu {
            display: none !important;
        }
    </style>
    <?php
}
add_action('wp_head', 'hide_admin_bar_menus_with_css');
add_action('admin_head', 'hide_admin_bar_menus_with_css');

将以上代码写入主题function.php或通过code snippets添加,搞定

附:如何查找菜单项ID或插件函数名称

  1. 菜单项ID:在浏览器中打开开发者工具,查看 admin bar 中目标菜单项的 ID,然后将其用于 remove_menu() 函数中。
  2. 插件函数名称:如果插件的代码公开,你可以查看插件源代码,找到添加 admin bar 菜单的函数名称。Wordpress从admin-bar工具条移除菜单项

通过这两种方式,你可以有效地屏蔽插件在 admin bar 上添加的菜单。如果有其他插件或详细需求,可以进一步调整代码。

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注