web-dev-qa-db-ja.com

すべてのページのみを表示する複数のWordpressメニュー

これが私の最初の質問です。私はロゴがナビゲーションの真ん中に置かれるウェブサイトを開発しています。私はこのメニューを達成するためにBootstrapとWordpressを使っていますが、奇妙な問題にぶつかっています。両方のメニューで[新しいトップレベルページを自動的に追加する]のチェックが外れていますが、両方のメニューにすべてのページが表示されています。

左側のメニューにはFAQ、連絡先、ブログが含まれ、右側のメニューにはHome、Shop、Aboutが含まれているはずです。代わりに、左右のメニューにすべてのページが表示されています。

これはあなたにもっと良いアイディアを与えるためのスクリーンショットです。 :

Right Menu Structure Messed Up Menu 

以下はナビゲーション用の私のheader.phpコードです。

<section id="navbar">
           <div class="navbar-wrapper">
            <div class="navbar navbar-default navbar-static" role="navigation">
                <div class="container">
                    <div class="navbar-header">
                        <a class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                            <span class="sr-only">Toggle navigation</span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                        </a>
                    </div><!-- navbar-header -->


                <?php
                    wp_nav_menu( array(

                        'theme_location'    => 'primary',
                        'container'         => 'nav',
                        'container_class'   => 'navbar-collapse collapse',
                        'menu_class'        => 'nav navbar-nav navbar-left'
                    ));
                ?>

                      <img src="<?php bloginfo('stylesheet_directory'); ?>/assets/img/SJ-circle.png" width="200px" height="200px" alt="Savvy Jack Wear" class="logo img-responsive center-block">


                <?php
                    wp_nav_menu( array(

                        'theme_location'    => 'secondary',
                        'container'         => 'nav',
                        'container_class'   => 'navbar-collapse collapse',
                        'menu_class'        => 'nav navbar-nav navbar-right'
                    ));
                ?>


                </div><!-- container -->
            </div><!-- navbar -->


    </div><!-- navbar-wrapper -->
    </section>  

ご覧のとおり、私は左右にメニューがあり、それらの間に画像を配置しました。私はセカンダリメニューもfunctions.phpファイルに登録しました。

register_nav_menus( array(
    'menu-1' => esc_html__( 'Primary', 'savvyjack' ),
    'menu-2' => esc_html__( 'Secondary', 'savvyjack'),
) );

ここで何が起こっているのかよくわかりません。私は以前にこの問題を抱えたことがなく、他のサイトに複数のメニューを持っていました。任意の洞察力は大歓迎です!

1
Sarah Wegerif

register_nav_menus()に渡される配列のキーは、wp_nav_menu()への呼び出しの中の'theme_location'引数と一致する必要があります。そうではないので、WordPressは適切なメニューを見つけることができず、代わりにすべてのトップレベルページからなるデフォルトを表示します。

'theme_location'引数を'menu-1'および'menu-2'に変更するか、register_nav_menus()呼び出しの配列キーを'primary'および'secondary'に変更してください。

2
bosco