ナビゲーションメニューを設置する


今回から新しめ、というか 3.0 以降という感じの機能です。一部もっと前から実装されていたのもありますが、細かいところは気にしない感じでひとつよろしく。あと、ほとんど Codex のまんまです。(^_^;

ナビゲーションメニューを使うにはまず functions.php で登録しなければなりません。このとき1つ使うか複数使うかでちょっと違うんですが、大は小を兼ねる、ってことで2つ登録する場合はこうなります。

[php]function register_my_menus() {
register_nav_menus(
array(
‘header-menu’ => __( ‘ヘッダーメニュー’ ),
‘extra-menu’ => __( ‘Extra Menu’ )
)
);
}
add_action( ‘init’, ‘register_my_menus’ );
[/php]

1つでいいよ、って時は extra-menu の行と header-menu の行の最後のコンマを削ってください。3つ以上ならもちろん追加。コンマも忘れずに。

ここで登録しているのはそれぞれのメニューのスラッグ(登録名)とメニューの説明です。説明は管理画面の外観>メニューのテーマの場所に表示されます。日本語を使う場合は functions.php を UTF8 で保存するのを忘れずに。変なカッコで囲まれてるのは翻訳用なので気にしなくて OK です。無くても動作します。

次にテーマへ

< ?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) ); ?>

< ?php wp_nav_menu( array( 'theme_location' => 'extra-menu' ) ); ?>

を追加します。2つ登録したので。場所はどこでもというかナビゲーションメニューを表示したいところへ。それぞれのスラッグに対応したメニューが出力されます。

出力はリスト形式で出てきますので、スタイルはお好みで。多くは階層構造で出てくると思うのでドロップダウンメニューでしょうか。

出力されるリストをどんなタグで囲むかなども指定できますのでさらに詳しいところは Codex でどうぞ。何も設定していないときには何も表示したくないのなら ‘fallback_cb’ => ” です。

Function Reference/wp nav menu « WordPress Codex

しかしよく考えたらウィジェットへメニューを登録出来るんだから、ナビゲーションメニューとして表示しなきゃいけないのはやっぱりヘッダー周りぐらいしかないんじゃないかという気がします。あぅ。

Navigation Menus « WordPress Codex

次は…カスタムバックグラウンドの予定です。たぶん。

今回使ったファイル:10navmenu


コメントを残す

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