wp_nav_menu()

2010年10月14日 木曜日 takafumi

WordPress 3.0 の目玉機能、カスタムメニューを表示するためのタグです。

が、テンプレートへ書く前に functions.php へちょこっと設定が必要になってます。

register_nav_menu( $location, $description )

名前の通りなんですが、メニューを登録するための関数です。指定するオプションは

$location
メニューを区別するために slug のように使われます
$description
管理画面でメニューの説明に使われます

で、どちらも必須です。具体的には ( ‘head’, ‘ページ上部’ ) てな感じ。これで head という slug を持つメニューを表示する入れ物が登録され、管理画面の「メニューの場所」では「ページ上部」と見出しがつけられます。

複数のメニューを登録する場合は register_nav_menus() を使い、オプションは配列形式で指定します。

あとはテンプレートで wp_nav_menu() を書けばメニューが表示されますが、こちらへ設定できるオプションは codex でどうぞ。またもや配列形式です。

テンプレートタグ/wp nav menu

メニューの外側を囲むタグの指定や ul 等に設定する id / class 等が指定できますが、複数の場所へメニューを設定したいときは区別するために menu または theme_location へ値を設定します。その場合の動作は以下のようになります。

theme_location が設定されている場合
指定された slug の入れ物へ設定されたメニューを表示
slug が登録されていない、またはメニューが設定されていない場合は何もしない
theme_location が設定されていない場合
menu パラメーターと一致している(何か項目が設定済みの)メニューを表示
何か項目が設定されている最初のメニュー
fallback_cb で設定されている関数(デフォルトでは wp_page_menu())
上記に該当しなければ何も表示しない

英語版から引っ張ってきたんですが、訳がアヤシイかもしれないのでリンクも張っておきます。(^_^;

Function Reference/wp nav menu

以上でカスタムメニューをテーマで使えるようになると思います。

カテゴリー:

コメントを残す