ナビゲーションメニューを表示します。メニューはバックエンド:外観>メニューから作成する事ができます。
Display a navigation menu. Menus can be created from the backend: Appearance > Menus.
Given a theme_location parameter, the function displays the menu assigned to that location, or nothing if no such location exists or no menu is assigned to it.
If not given a theme_location parameter, the function displays
- the menu matching the ID, slug, or name given by the menu parameter, if that menu has at least 1 item;
- otherwise, the first non-empty menu;
- otherwise, output of the function given by the fallback_cb parameter (wp_page_menu(), by default);
- otherwise nothing.
wp_nav_menuのテンプレートタグ使用方法
<?php wp_nav_menu($args); ?>
デフォルトの使い方
<?php $defaults = array( 'theme_location' => , 'menu' => , 'container' => 'div', 'container_class' => 'menu-{menu slug}-container', 'container_id' => , 'menu_class' => 'menu', 'menu_id' => , 'echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' => , 'after' => , 'link_before' => , 'link_after' => , 'items_wrap' => '<ul id=\"%1$s\" class=\"%2$s\">%3$s</ul>', 'depth' => 0, 'walker' => ); ?>
wp_nav_menuのパラメーター
$theme_locaton
(string) (optional) テーマ内のロケーションで使用されます。–ユーザーによって選択可能にするために、 register_nav_menu()で登録する必要があります。
(string) (optional) the location in the theme to be used–must be registered with register_nav_menu() in order to be selectable by the user
Default: None
$menu
(string) (optional) メニューは望まれていました;id、スラッグ、名前に対応します(順番に一致している)。
(string) (optional) The menu that is desired; accepts (matching in order) id, slug, name
Default: None
$container
(string) (optional) ulで囲むかどうか、何でそれを囲むか。
(string) (optional) Whether to wrap the ul, and what to wrap it with
Default: div
$container_class
(string) (optional)コンテナに適用されるクラスです。
(string) (optional) the class that is applied to the container
Default: menu-{menu slug}-container
$container_id
(string) (optional) コンテナに適用されるIDです。
(string) (optional) The ID that is applied to the container
Default: None
$menu_class
(string) (optional) CSSクラスは、メニューを形成するul要素に使用します。
(string) (optional) CSS class to use for the ul element which forms the menu
Default: menu
$menu_id
(string) (optional) メニューを形成するUL要素に適用されているIDです。
(string) (optional) The ID that is applied to the ul element which forms the menu
Default: menu slug, incremented
$echo
(boolean) (optional) メニューをエコーするか返すかどうかです。
(boolean) (optional) Whether to echo the menu or return it
Default: true
$fallback_cb
(string) (optional) メニューが存在しない場合は、コールバック関数を使用します。
(string) (optional) If the menu doesn’t exists, the callback function to use
Default: wp_page_menu
$before
(string) (optional) リンクテキストの前にテキストを出力します。
(string) (optional) Output text before the link text
Default: None
$after
(string) (optional) リンクテキストの後にテキストを出力します。
(string) (optional) Output text after the link text
Default: None
$link_before
(string) (optional) リンク前にテキストを出力します。
(string) (optional) Output text before the link
Default: None
$link_after
(string) (optional) リンク後にテキストを出力します。
(string) (optional) Output text after the link
Default: None
$items_wrap
(string) (optional) Whatever to wrap the items with an ul, and how to wrap them with
Default: None
$depth
(integer) (optional) いくつ階層のレベルは、含まれているか。0は全てを意味してます。
(integer) (optional) how many levels of the hierarchy are to be included where 0 means all
Default: 0
$walker
(string) (optional) カスタムウォーカーを使用します。
(string) (optional) Custom walker to use
Default: None
例
デフォルトの例
<div class="access"> <?php wp_nav_menu(); ?> </div>
特定のメニューをターゲット
<?php wp_nav_menu( array('menu' => 'Project Nav' )); ?>
Twenty Tenテーマでの使用方法
<div id="access" role="navigation"> <?php /* Allow screen readers / text browsers to skip the navigation menu and get right to the good stuff. */ ?> <div class="skip-link screen-reader-text"> <a href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentyten' ); ?>"> <?php _e( 'Skip to content', 'twentyten' ); ?></a> </div> <?php /* Our navigation menu. If one isn't filled out, wp_nav_menu falls back to wp_page_menu. The menu assigned to the primary position is the one used. If none is assigned, the menu with the lowest ID is used. */ wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?> </div><!-- #access -->
ナビゲーションコンテナを削除する方法
ナビゲーションコンテナを削除するために、
functions.phpで指定されたテーマの場所と関数の引数間で使用したwp_nav_menu(例:’theme_location’ => ‘primary-menu’)は、管理でそれに割当てられたメニューを持つ必要があります。
他の引数’container’ => ‘false’は無視されます。
In order to remove navigation container, theme location specified in functions.php and used among arguments in function wp_nav_menu ( eg. ‘theme_location’ => ‘primary-menu’ ) must have a menu assigned to it in administration! Othervise argument ‘container’ => ‘false’ is ignored.
<?php function my_wp_nav_menu_args( $args = '' ) { $args['container'] = false; return $args; } // function add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' ); ?>
あるいは、
<?php wp_nav_menu( array( 'container' => '' ) ); ?>
リストアイテムを囲うULタグを削除する方法
この例は、リストアイテム周りのULタグを削除します。
This example will remove the ul around the list items.
<?php wp_nav_menu( array( 'items_wrap' => '%3$s' ) ); ?>
ログインユーザごとに異なるメニューを表示する方法
この例は、ログインしているユーザーとログインしていないユーザーによって、異なるメニューを表示するケースです。
This example would cause a menu to show for logged-in users and a different menu for users not logged-in.
<?php if ( is_user_logged_in() ) { wp_nav_menu( array( 'theme_location' => 'logged-in-menu' ) ); } else { wp_nav_menu( array( 'theme_location' => 'logged-out-menu' ) ); } ?>
変更ログ
Since 3.0
ソースファイル
wp_nav_menu() は、wp-includes/nav-menu-template.php内に位置しています。
wp_nav_menu() is located in wp-includes/nav-menu-template.php.