博客 / WordPress/ WordPress顶部的admin bar导航栏怎么修改?

WordPress顶部的admin bar导航栏怎么修改?

WordPress顶部的admin bar导航栏怎么修改?

如何修改 WordPress 顶部管理栏

WordPress 顶部的管理栏(Admin Bar)为登录用户提供了便捷的访问入口。你可以通过代码对其进行修改,例如隐藏、按用户角色显示、移除默认菜单项或添加自定义菜单。

1. 完全隐藏管理栏

将以下代码添加到主题的 functions.php 文件中,可以完全禁用管理栏对所有用户的显示。

add_filter( 'show_admin_bar', '__return_false' );

2. 仅对管理员显示

如果你希望管理栏只对管理员(Administrator)角色可见,而对其他注册用户(如订阅者、编辑者)隐藏,可以使用以下代码。请注意,is_admin() 条件通常用于判断是否在后台界面,而管理栏在前台也会显示。更常见的做法是直接检查用户权限。

if ( ! current_user_can( 'administrator' ) ) {
    add_filter( 'show_admin_bar', '__return_false' );
}

3. 移除默认菜单项并添加自定义项

你可以移除管理栏中不需要的默认菜单(如 WordPress 徽标、关于、新建内容等),并添加自己的菜单项。这需要在 wp_before_admin_bar_render 钩子中操作。

function mytheme_admin_bar_menu() {
    global $wp_admin_bar;
    // 移除默认菜单项
    $wp_admin_bar->remove_menu( 'wp-logo' ); // WordPress 徽标及子菜单
    $wp_admin_bar->remove_menu( 'new-content' ); // “新建”菜单
    $wp_admin_bar->remove_menu( 'comments' ); // 评论
    $wp_admin_bar->remove_menu( 'appearance' ); // 外观
    $wp_admin_bar->remove_menu( 'updates' ); // 更新
    // 添加一个自定义菜单项
    $wp_admin_bar->add_menu( array(
        'id'    => 'about-mytheme',
        'title' => '@ 联系我们',
        'href'  => 'https://example.com/contact'
    ) );
}
add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_menu' );

注意: 上述代码对所有能看到管理栏的用户生效。如果你只想对管理员进行此修改,可以在函数开头添加权限检查:if ( ! current_user_can( 'administrator' ) ) { return; }

4. 添加带有子菜单的自定义菜单

你还可以创建一个包含子菜单的父级菜单,构建更复杂的导航结构。

function mytheme_admin_bar_custom_menu() {
    global $wp_admin_bar;
    // 添加父菜单
    $wp_admin_bar->add_menu( array(
        'id'    => 'custom_menu',
        'title' => '快捷导航'
    ) );
    // 在父菜单下添加子菜单
    $wp_admin_bar->add_menu( array(
        'parent' => 'custom_menu',
        'id'     => 'my_orders',
        'title'  => '我的订单',
        'href'   => admin_url( 'admin.php?page=orders' ),
        'meta'   => array( 'target' => '_blank' ) // 在新标签页打开
    ) );
    // 可以继续添加更多子菜单...
}
add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_custom_menu' );

关于 meta 参数: meta 数组用于设置链接的 HTML 属性。常见的键包括:

  • target: 指定链接打开方式(如 _blank)。
  • title: 链接的标题属性(鼠标悬停提示)。
  • class: 为菜单项添加 CSS 类。
  • html: 允许在菜单项内使用自定义 HTML。

所有代码修改都应添加到当前主题的 functions.php 文件中,或通过自定义功能插件实现。修改前建议进行备份,并在非生产环境测试。

发表评论

您的邮箱不会公开。必填项已用 * 标注。