web-dev-qa-db-ja.com

管理メニューにナビゲートメニューを追加しますか?

私は手動でリンクを新しいWP管理バーに手動で添付する方法のいくつかの解決策を見ましたが、私はこれを私のサイト管理者にとってずっと簡単にする必要があります。

最も簡単な解決策は、カスタムナビゲーションメニューを作成し、そのメニューを管理バーに「添付」することです。このようにして、サイト管理者はカスタムメニューにページを追加するだけで、非常に簡単に新しいリンクを管理バーに追加することができます。

主なアイデアは、メニューバーを表示するドロップダウンメニューを管理バーの右側に直接配置することです。

4
shawn

とても簡単なことがわかりました。特別なウォーカーは必要ありません。 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 ),
            ),
        ) );
    }
}
4
Jan Fabry