WordPress備忘録 wp_nav_menu

Pocket
LINEで送る

なんだか、さっぱり訳わからずに、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のパラメータは、こちらで確認できやす。(^^;

Pocket
LINEで送る

YASUKE YAMURA

コメントを残す

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

ツールバーへスキップ