X

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のパラメータは、こちらで確認できやす。(^^;

矢村やすけ: 矢村やすけと申します。 僕が住む、安曇野には八面大王伝説という伝説があります。その伝説の中で、妖力の強い八面大王をうつ為の矢に使う三十三節ある山鳥の尾羽を、矢村に住んでいた弥助が坂上田村麿呂に献上します。現在、僕が住んでいる場所が、その矢村地区に近いので、矢村やすけとしました。 安曇野の地名は、この八面大王伝説由来のものが多いです。そんな伝説に彩られた安曇野の風景を主にスマホ写真で投稿していきます。(^^)
Related Post

This website uses cookies.