WEB NOTE
WEB関連の備忘録

WordPressナビゲーションメニュー(カスタムメニュー)を表示する方法

プラグインを使用しないで、柔軟なメニューの出力を可能にするカスタムナビゲーション機能の作成方法のメモ。

functions.phpで登録できるようにする

function register_my_menus() { 
	register_nav_menus(array(
		'header-menu' => 'HeaderMENU',
	));
}
add_action('after_setup_theme', 'register_my_menus');

‘メニュー位置の識別子’ => ‘メニューの説明’

登録したメニューを出力する

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

オプションは以下の表を参考にしてください。

オプション一覧

パラメータ初期値説明
theme_location テーマの中で使われる位置。ユーザーが選択できるように register_nav_menu() で登録されている必要がある。
menu_classメニューを構成する ul 要素に適用するCSS クラス名。
menu_id ‘{メニューのスラッグ}-{連番}’ メニューを構成する ul 要素に適用するID。
container ‘div’ ul をラップするか、ラップする場合は何でラップするか。使えるタグは、 div、nav。コンテナをなしにする場合は false。例: ‘container’ => false
container_class menu-{メニューのスラッグ}-container コンテナに適用されるクラス名
container_id コンテナに適用されるID
fallback_cb wp_page_menu メニューが存在しない場合にコールバック関数を呼び出す
before リンクテキストの前のテキスト
after リンクテキストの後のテキスト
link_before リンクの前のテキスト
link_after リンクの後のテキスト
echo true メニューをHTML出力する(true)か、PHPの値で返す(false)か
depth 0何階層まで表示するか。0 は全階層。

テンプレートタグ/wp nav menu – WordPress Codex 日本語版

https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_nav_menu