wp_nav_menu()の設定がうまくいかないときの解決法

グーグル先生に聞いても、聞き方が悪かったのか答えがみつからなかったので、同じように困っている方、また備忘録として記録。

 

症状

wp_nav_menu()とは、ご存知の通りナビゲーションメニューを表示する関数なんですが、カスタマイズがうまく機能せず、containerの指定がmenuに反映されたり、items_wrapが無視されたりする。

<?php wp_nav_menu( array(
‘container’ => ‘div’,
‘container_class’ => ‘container_class’,
‘container_id’ => ‘container_id’,
‘menu_class’ => ‘menu_class’,
‘menu_id’ => ‘menu_id’,
‘fallback_cb’ => ‘wp_page_menu’,
‘items_wrap’ => ‘<ul id=”%1$s” class=”%2$s”>%3$s</ul>’,
)); ?>

<!– 出力:指定が一部無視される –>
<div id=”menu_id” class=”menu_class”>
<ul>
<li><a href=”hogehoge”>TOP</a></li>
<li><a href=”hogehoge”>ABOUT</a></li>
</ul>
</div>

<!– 出力:本来こうなるはず –>
<div id=”container_id” class=”container_class”>
<ul id=”menu_id” class=”menu_class”>
<li><a href=”hogehoge”>TOP</a></li>
<li><a href=”hogehoge”>ABOUT</a></li>
</ul>
</div>

 

解決方法

[管理画面] → [外観] → [メニュー]から、新規メニューを作成。

たったこれだけです。。
これを解決するのにWPのバージョン下げたり、新たにWPをインストールしたりと、1時間近く格闘しました。
何も設定してなくてもメニューが出来てしまっていたのが盲点でした。
ある程度、カテゴリやメニュー、記事などを準備してから進めるが吉です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>