web-dev-qa-db-ja.com

見た目にメニューが見えない

私のfunction.phpに以下のコードを追加しました

function register_my_menu() {
   register_nav_menu('header-menu',__( 'Menu' ));
}
add_action( 'init', 'register_my_menu' );

そして、ここにメニューがある私のコードです。

wp_nav_menu( array( 'theme_location' => 'header-menu' ) );

問題は何ですか?

3

私はSOについて少し前にこれについて完全な答えをしました。完全な投稿を見ることができます ここ 。 WPSEユーザーのために、私はその投稿から私の答えをコピーしました。私はそれを編集していません。この記事は元々、フッターにナビゲーションメニューを追加して表示することについてでしたが、ヘッダーナビゲーションメニューにも同じ方法が適用されます。私はあなたがこれが参考になったと思います

オリジナルPOSTFROM SO

2つのナビゲーションメニューが正しく登録されました。私はいつもafter_setup_themeフックにフックされる私の最初のテーマ設定フックの中でそれをします。だから私はあなたのfunctions.phpでこのようなことをするだろう:

function pietergoosen_theme_setup() {
  register_nav_menus( array( 
    'header' => 'Header menu', 
    'footer' => 'Footer menu' 
  ) );
 }

add_action( 'after_setup_theme', 'pietergoosen_theme_setup' );

覚えておいて、あなたはこのようにそれをする必要はありません。以下も動作します

register_nav_menus( array( 
        'header' => 'Header menu', 
        'footer' => 'Footer menu' 
      ) );

これで、バックエンドの[表示]> [メニュー]> [場所の管理]の2つのメニューが表示されます(メニューが存在する場合のみ)。

Screenshot of menus

フッターメニューのために、メニューを表示する必要がある場所に、フッターの次のコードを追加します。

<nav id="footer-navigation" class="site-navigation footer-navigation" role="navigation">
       <?php wp_nav_menu( array( 'theme_location' => 'footer', 'menu_class' => 'nav-menu', 'fallback_cb' => false ) ); ?>
</nav>

この段階では何​​も表示されません、そして私はこれがあなたがまた行き詰まるところだと思います。これは、メニューに項目が割り当てられていないためです。メニューに項目が割り当てられていない場合は、何も表示されません。そのため、表示するものを挿入する必要があります。

バックエンドでは、 "外観>メニュー>メニューの編集"へ行きます。 [メニュー名]フィールドにメニューの名前を入力して[メニューの作成]をクリックします。メニュー画面にメニューを追加することができます。

Screenshot of the menu

あなたは今あなたのメニューに挿入するために左側からアイテムを選ぶことができます。メニューの場所、この場合はフッターを設定することもできます。フッターにカテゴリを表示するように選択しました。完了したら、[Save Menu]をクリックします。

Screenshot of saved menus

フロントエンドにナビゲーションメニューが表示されます。

Screenshot of footer menu

ナビゲーションバーにスタイルを追加するだけです。あなたはheader navメニューについても全く同じことをするでしょう、あなたはheader.phpのメニューへの呼び出しを追加することを受け入れます。私はあなたがこれが役に立つことを願っています。

3
Pieter Goosen