Home / admin / Attach a navigation menu to the admin bar
  • How to Attach a navigation menu to the admin bar

    attach-a-navigation-menu-to-the-admin-bar

    I stumbled into this slick little snippet idea by Jan Fabry while visiting stack exchange. Adding this snippet to the functions.php of your wordpress theme will use the wordpress menu feature to create a new menu within the admin bar. Call your menu “WPSE 15186 test menu” or change the menu name within the code to whatever you like.

    ( click code to copy )

    wordpress snippet : PHP

    <>
    add_action( 'admin_bar_menu', 'wpse15186_admin_bar_menu' );
    function wpse15186_admin_bar_menu( &$wp_admin_bar )
    {
        $menu = wp_get_nav_menu_object( 'WPSE 15186 test menu' );
        $menu_items = wp_get_nav_menu_items( $menu->term_id );
        $wp_admin_bar->add_menu( array(
            'id' => 'wpse15186-menu-0',
            'title' => 'WPSE 15186 menu',
        ) );
        foreach ( $menu_items as $menu_item ) {
            $wp_admin_bar->add_menu( array(
                'id' => 'wpse15186-menu-' . $menu_item->ID,
                'parent' => 'wpse15186-menu-' . $menu_item->menu_item_parent,
                'title' => $menu_item->title,
                'href' => $menu_item->url,
                'meta' => array(
                    'title' => $menu_item->attr_title,
                    'target' => $menu_item->target,
                    'class' => implode( ' ', $menu_item->classes ),
                ),
            ) );
        }
    }
    

    ( WordPress codex functions, hooks, in this snippet. )

    add_action, wp_get_nav_menu_items, _n, wp,