将导航菜单附加到管理栏?

时间:2011-04-20 作者:shawn

我已经看到了许多关于如何手动将链接附加到新的WP管理栏的解决方案,但我需要让我的站点管理员更容易实现这一点。

我突然想到,最简单的解决方案是创建一个自定义导航菜单,然后将该菜单“附加”到管理栏。通过这种方式,站点管理员只需向自定义菜单添加页面,就可以很容易地向管理栏添加新链接。

其主要思想是在管理栏的右侧直接放置一个下拉菜单,显示菜单页面。

1 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

结果证明这很容易!不需要特别的助行器,wp_get_nav_menu_items() 返回您需要的所有内容。本例先添加一个根菜单项,然后添加菜单,如果需要,可以使用不同的方法。它映射了我在代码中可以找到的所有额外菜单功能,我不知道您是否可以在菜单UI中全部设置它们。

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 ),
            ),
        ) );
    }
}

结束

相关推荐

Menu API not switching menus?

我正在使用菜单API,我想切换到其他菜单,但出于某种原因,它保留了第一个菜单这是我的密码在函数中。php add_action( \'init\', \'register_my_menus\',10 ); function register_my_menus() { register_nav_menu(\'main-navigation\', \'Main Navigation\'); } 下面是我的主题文件(header.ph