web-dev-qa-db-ja.com

メニューAPIでメニューが切り替えられない

メニューAPIを使用していますが、別のメニューに切り替えたいのですが、何らかの理由で最初のメニューを保持しています。

これが私のコードです

functions.phpに

    add_action( 'init', 'register_my_menus',10 );

function register_my_menus() {

    register_nav_menu('main-navigation', 'Main Navigation');

}

これが私のテーマファイル(header.php)のコードです。

<?php 
    $args = array(
        'menu' => 'main-navigation',
        'container_id' => 'navigation',
        'fallback_cb' => 'wp_page_menu'
        );
    wp_nav_menu($args); ?> 
1
Mild Fuzz

_Menusはそのあたりでやや混乱しています。これを試して:

$args = array(
        'theme_location' => 'main-navigation',
        'container_id' => 'navigation',
        'fallback_cb' => 'wp_page_menu'
        );
    wp_nav_menu($args);

theme_locationは、この場所にアタッチされているメニューを表示しようとします。 menuは、slug/idでメニューを表示しようとします(メニューの場所ではなく、管理領域に作成した実際のメニュー)。

だからあなたはメニュースラッグと位置を混同しています、それは混乱して、それがそうすることができる最初のメニューだけを提供します。

その背後にあるロジックの詳細な説明については、 wp_nav_menu() のドキュメントを参照してください。

2
Rarst