カスタムメニューを表示する
register_nav_menu でカスタムメニュー宣言
まず最初に、function.php に「こういうカスタムメニューを使うんだよ〜」って宣言します。
使用する関数は、register_nav_menu です。
register_nav_menu( $location, $description );
$location は、カスタムメニュー位置の識別子。スラッグのように固有のID(半角英数)
$description は、メニューの説明で、管理画面からメニューを選択する場合に表示されます(日本語可)
具体的には
register_nav_menu( primary, メインメニュー ); register_nav_menu( footer, フッターナビゲーション );
と書いたり
add_action( 'after_setup_theme', 'register_my_menu' ); function register_my_menu() { register_nav_menu( primary, メインメニュー ); register_nav_menu( footer, フッターナビゲーション ); }
と書いたりします。
※register_my_menu は、任意の関数名
wp_nav_menu でカスタムメニューの詳細を設定
次に、カスタムメニューを吐き出すソース(html)の仕様を設定します。
使用するテンプレートタグは、wp_nav_menu を使用し
$args = array( . . . ); wp_nav_menu( $args );
または
wp_nav_menu( array( . . . ));
上記の・・・の部分に以下のように書き各項目を設定できます。
wp_nav_menu( array( 'menu' => '', // カスタムメニューのID。省略で良い 'menu_class' => '', // メニューのul要素に付加されるクラス名 'menu_id' => '', // メニューのul要素に付加されるID名。省略時は、メニューのスラッグ-連番 'container' => '', // メニューのul要素を囲む要素。使えるタグは、 div、nav。コンテナをなしにする場合は false 'container_class' => '', // メニューのul要素を囲む要素に付加するクラス名。省略時は、menu-メニューのスラッグ-container 'container_id' => '', // メニューのul要素を囲む要素に付加するID名 'fallback_cb' => '', // メニューが存在しない場合呼び出される関数 'before' => '', // リンクテキストの前に挿入するテキスト(aタグの前) 'after' => '', // リンクテキストの後に挿入するテキスト(aタグの後) 'link_before' => '', // リンク内のテキストの先頭に挿入するテキスト 'link_after' => '', // リンク内のテキストの最後に挿入するテキスト 'echo' => '', // 省略またはtrue指定でメニューをHTML出力。false指定でPHPの値で返す 'depth' => 1, // 表示するメニュー項目の階層数。0ですべて表示、1で親メニューのみ表示 'walker' => '', // 使用するカスタムウォーカーオブジェクト 'theme_location' => '', // register_nav_menu()で登録されているlocation(第一引数) 'items_wrap' => '', // Sprintf()関数の引数となる文字列。%1$s は menu_id、%2$s は menu_class、%3$s は リスト項目。初期値は、<ul id="%1$s" class="%2$s">%3$s</ul> ));