WordPress備忘録 wp_nav_menu
なんだか、さっぱり訳わからずに、Wordpressを触り始めた時に、とっても単純な事にえらく悩んだので、それを書き留めておきやす。(^^;
悩んだのはカスタムメニューなんですが、カスタムメニューを使う為には、前提として、functions.phpにregister_nav_menus()が記述されてないといけません。
こんな感じで、ヘッダーメニューという1つのメニューが追加されます。
register_nav_menus(array( 'header-menu' => 'ヘッダーメニュー' ) );
2つのカスタムメニューを使う場合はこんな感じ。
register_nav_menus(array( 'header-menu' => 'ヘッダーメニュー', 'footer-menu' => 'フッターメニュー' ) );
以下、こんな感じで書き足せば、カスタムメニューが増やせるわけですけど、個人的にはサイドバーやページ途中にメニューを配置したい場合は、ウィジェットで対応すればいいと思うので、一般的には2つも作れば十分のような気がしやす。(^^;
functions.phpへの記述が終わったら、テンプレートファイルに、メニューを表示したい場所に以下を記述するだけです。
<?php wp_nav_menu(array('theme_location' => 'header-menu')); ?>
‘theme_location’には、functions.phpで指定した表示したいロケーションを記述します。この場合は、header-menuですね。
と、ここまでの内容は、Wordpressのグローバルメニューやカスタムメニューで調べると、あちこちに説明が書いてありやす。僕がとっても悩んだのは、ここからで、すごく、しょうもない事なんですが、それは、よくある、プルダウンメニューを作ったりする場合です。
もちろん、プルダウンメニュー用のスタイルシートは用意しないといけないんですけど、Wordpressのダッシュボード、外観のメニューで、追加した項目を右へちょいとドラッグしてやると、サブアイテムと表示され、自動的にサブメニューになります。とても簡単だ。素晴らしい!!
ところが、このサブメニューが、はき出されるwebページでは、一切、表示されないのです。スタイルシートがおかしくて、どっかに飛んじゃってるのかもと、ソースを見ても、ソースにも表示されていません。何回やっても駄目です。同じようなトラブルを経験している人がいないかと、検索してみても、さっと見た限り、書いてる人もいません。
もしかして、テーマのインストールに失敗にしているのかもと、テーマを再インストールしてみても、一向に症状は改善されません。どうしてなんだ?と、冷静にテンプレートファイルを眺めてみました。
<?php wp_nav_menu( array( 'container_id' => 'header-menu', 'theme_location' => 'header-menu', 'depth' => 1 ) ); ?>
すると、何やら、パラメータがついている。さっさと確認しろよ!って話なんですが、テンパってる時ってのは、こんなもんです。(笑)
調べてみたら、depthというパラメータは、何階層まで表示するかというオプションで、0が全階層で、初期値。以下、1が1階層、2が2階層まで表示といった指定になるようです。僕が使ったテンプレートでは、たまたま、この指定が1だったので、サブメニューが表示されなかっただけの事でした。(笑)
さんざん、すったもんだした挙句、今のところ必要が無いので、サブメニューは使ってないんですけどね。(笑)
wp_nav_menuのパラメータは、こちらで確認できやす。(^^;