web-dev-qa-db-ja.com

テーマにメニューサポートを追加するにはどうすればいいですか?

私はいくつかのチュートリアルを試しました。私はregister_nav_menus()を使ってheader.phpにメニューを追加するべきだと思う

これは私がこのヘルプサイト自体からfunctions.phpで試したコードです。

function my_cool_menu_function(){
  register_nav_menus( array(
    'primary' => 'Primary Navigation'
  ));
}

add_action( 'after_setup_theme', 'my_cool_menu_function' );

Header.php内

<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>

メニューがこの関数に登録されているかどうかをチェックしようとしたときに$locations = get_nav_menu_locations();var_dump($locations);

サイズ0の配列を取得しました。メニューが登録されていません。

私は何かが足りない?

私は私が思うページであるフロントエンドでいくつかのリンクを見ることができます。

Your theme does not natively support menus, but you can use them in sidebars by adding a “Custom Menu” widget on the Widgets screen.が見えます

だから私は上記のメニューが登録されていないと思います。

ここで何がおかしいのですか?

functions.phpにもadd_theme_support('nav-menus');を追加しました

アップデート

私はメニューを見ることができる私はプラグインを介して上記の同じコードを試してみました。つまり、これはtheme functions.phpファイルでは機能していません。なぜこれが起こるのかわからない。

誰もがこれを知っていますか?

1
rram

wp_nav_menu() のデフォルトのフォールバックはwp_page_menu()です。そのため、特定の場所にメニューを設定しておらず、header.phpコードのfallback_cbパラメータを変更していない場合は、ページのリストが表示されます。さらにあなたのvar_dumpは空の配列を返します。あなたはAppearance> Menusに行き、メニューを作成する必要があります。それをプライマリロケーションに割り当てます。

enter image description here

1
helgatheviking