WordPress テーマをカスタムメニュー対応にしてみた(wp_nav_menu)

WordPress3.0から実装された『カスタムメニュー』を自分で作成したテーマに組み込んでみた。標準テーマの『Twenty Ten』は対応しているので、そのコードを参考に実装。実際に対応させてみて気が付いたのは、コーポレートサイト構築に便利な機能だって事。面白い!

functions.phpに下記のソースを追加する。

<?php register_nav_menus( array( 'primary' => __( 'Primary Navigation' ), ) ); ?>

上のソースを見ると、『Primary Navigation』というのが『primary』という言葉に関連付けられているのが予測できた。このソースはWordPress3.0標準テーマのTwenty Tenのソースなんだけど、実際にTwenty Tenを有効にした状態でカスタムメニューの画面に入ると、下記の様になってる。

日本語のWordPressなので一見しても分からないけど、よく考えてみたらソース内の『Primary Navigation』ってのが日本語になって、『メインナビゲーション』って表示されている気がするのは気のせいか?そして『primary』ってのがロケーションらしいんだけど、これはTwenty Tenのheader.phpを見たら理解が出来た。

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

このソースが85行目にいるんだけど、ここの『primary』に関係してるのが分かる。

つまり、管理画面で作成したメニュー(画像ではmain)を、「メインナビゲーション」のセレクトメニューで選んで保存すると、header.phpに記述された箇所にメニューが表示されるって事。

って事は、ここを書き換えて使いまわせば、幾つでも複製出来るって事も分かる。そこで自作テーマに下記のソースを書いてみた。

<?php register_nav_menus( array( 'top_navi' => __( 'Top Navigation' ), ) ); register_nav_menus( array( 'gloval_navi' => __( 'Gloval Navigation' ), ) ); ?>

とりあえず2つにしてみる。次に、上記の『Top Navigetion』と『Gloval Navigation』を表示させたい箇所に下記を記述。自分はheader.php内に書いた。

■Top Navigetion

<?php wp_nav_menu( array('container_id' => 'Tnavi', 'fallback_cb' => '', 'theme_location' => 'top_navi', 'depth' => '1') ); ?>

■Gloval Navigation

<?php wp_nav_menu( array('container_id' => 'Gnavi', 'theme_location' => 'gloval_navi', 'depth' => '1') ); ?>

こんな感じにしてみた。実際に管理画面を見てみると、

バッチリじゃ~ん!(ニヤリ)

本当は出力されてるのも掲載したいんだけど、まだ何もスタイルをかけていないので勘弁して下さい。

ちなみにwp_nav_menuは、カスタムメニューを作っていない時には代用としてwp_page_naviで出力するようになってるらしい。これもページ一覧の一種だと思うんだけど、function.phpをもう少し下まで見ると、

<?php function twentyten_page_menu_args( $args ) { $args['show_home'] = true; return $args; } add_filter( 'wp_page_menu_args', 'twentyten_page_menu_args' ); ?>

とある。平たく言えば、

テーマTwenty Tenのwp_page_menuは、トップページへのリンク(show_home)を、ページ一覧と一緒に出力(true)してちょうだいな。

って指示をしてるっぽい。実際にそう出力されてたw

って事で、以下まとめ・・・

■function.php

<?php register_nav_menus( array( '■■■' => __( '▲▲▲' ), ) ); ?>

■メニューを表示させたい箇所

<?php wp_nav_menu( array( 'theme_location' => '■■■') ); ?>
  • ■■■ = functions.phpと表示させたい箇所の関連付け
  • ▲▲▲ = メニュー管理画面での表示させる文言

各パラメータは紹介してるサイトが色々あるので、「wp_nav_menu」で検索して下さい。

コメント

カテゴリー

RSS 筆者のブログ - 音楽熊さん -

  • 高槻ジャズスト 初日の動画 2012年5月8日
    5月3日の模様を動画でアップしていただきました!ありがとうございまーす!   オープニング 【Cold Sweat】   1曲目 【Hosanna】   2曲目 【Get Right Chu […]
  • 呑んだ食った騒いだ吹いたのGW! 2012年5月6日
    タイトル通りですw大福のGWは4日間。4日間ひたすらサックスを吹いて、呑んで、食べて、騒いできました!★5月3日この日は高槻ジャズストリートへの参加。ゴスペルとセッション仲間とのジョイントステージで、「TBCC Show […]
  • 楽しむ日々。順調順調~。 2012年4月27日
    新たな仕事をスタートしてもうすぐ1ヶ月。 新たに出会ったミュージシャン達とも楽しんでいる日々。 あちこちで出会いが止まず、日々身の引き締まる想いです。 仕事は幸いにも同世代が多く、話の合うメンバーに囲まれて楽しくやれてい […]