WordPress 3.0 の目玉機能、カスタムメニューを表示するためのタグです。
が、テンプレートへ書く前に functions.php へちょこっと設定が必要になってます。
register_nav_menu( $location, $description )
名前の通りなんですが、メニューを登録するための関数です。指定するオプションは
- $location
- メニューを区別するために slug のように使われます
- $description
- 管理画面でメニューの説明に使われます
で、どちらも必須です。具体的には ( ‘head’, ‘ページ上部’ ) てな感じ。これで head という slug を持つメニューを表示する入れ物が登録され、管理画面の「メニューの場所」では「ページ上部」と見出しがつけられます。
複数のメニューを登録する場合は register_nav_menus() を使い、オプションは配列形式で指定します。
あとはテンプレートで wp_nav_menu() を書けばメニューが表示されますが、こちらへ設定できるオプションは codex でどうぞ。またもや配列形式です。
メニューの外側を囲むタグの指定や ul 等に設定する id / class 等が指定できますが、複数の場所へメニューを設定したいときは区別するために menu または theme_location へ値を設定します。その場合の動作は以下のようになります。
- theme_location が設定されている場合
- 指定された slug の入れ物へ設定されたメニューを表示
- slug が登録されていない、またはメニューが設定されていない場合は何もしない
- theme_location が設定されていない場合
- menu パラメーターと一致している(何か項目が設定済みの)メニューを表示
- 何か項目が設定されている最初のメニュー
- fallback_cb で設定されている関数(デフォルトでは wp_page_menu())
- 上記に該当しなければ何も表示しない
英語版から引っ張ってきたんですが、訳がアヤシイかもしれないのでリンクも張っておきます。(^_^;
Function Reference/wp nav menu
以上でカスタムメニューをテーマで使えるようになると思います。