ページ内目次

カスタムメニューを表示する。register_nav_menus と wp_nav_menu の使い方

カスタムメニューを表示する

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>
));
↑上へまいりま〜す