• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/wp get nav menu items

提供: WordPress Codex 日本語版
< 関数リファレンス
2013年8月11日 (日) 00:08時点におけるDjkaz (トーク | 投稿記録)による版 (英文をコピペ。)

(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

Description

Returns the items from a navigation menu created in the AppearanceMenus panel.

Given a menu name, id or slug, the function returns the menu items from that navigation menu. The menu items returned are in fact the actual nav_menu_item type posts which contain references to the normal posts/pages they are associated with.

Usage

%%% <?php $items = wp_get_nav_menu_items( $menu, $args ); ?> %%%

Default Usage

%%%<?php $args = array(

       'order'                  => 'ASC',
       'orderby'                => 'menu_order',
       'post_type'              => 'nav_menu_item',
       'post_status'            => 'publish',
       'output'                 => ARRAY_A,
       'output_key'             => 'menu_order',
       'nopaging'               => true,
       'update_post_term_cache' => false ); ?>%%%

Parameters

$menu
string) (必須) Menu ID
初期値: なし

The nav menu location is not a valid argument.

$args
array) (optional) Optional arguments
初期値: なし

Return Values

Indexed array of WP_Post objects (empty if the menu contains no items) or bool false.

Examples

Building simple menu list

    // Get the nav menu based on $menu_name (same as 'theme_location' or 'menu' arg to wp_nav_menu)
    // This code based on wp_nav_menu's code to get Menu ID from menu slug

    $menu_name = 'custom_menu_slug';

    if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
	$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );

	$menu_items = wp_get_nav_menu_items($menu->term_id);

	$menu_list = '<ul id="menu-' . $menu_name . '">';

	foreach ( (array) $menu_items as $key => $menu_item ) {
	    $title = $menu_item->title;
	    $url = $menu_item->url;
	    $menu_list .= '<li><a href="' . $url . '">' . $title . '</a></li>';
	}
	$menu_list .= '</ul>';
    } else {
	$menu_list = '<ul><li>Menu "' . $menu_name . '" not defined.</li></ul>';
    }
    // $menu_list now ready to output

Change log

Source file

wp_get_nav_menu_items() is located in wp-includes/nav-menu.php.

Related

ナビゲーションメニュー: register_nav_menus(), register_nav_menu(), unregister_nav_menu() /en , has_nav_menu(), wp_nav_menu(), wp_get_nav_menu_items()


関数リファレンステンプレートタグ目次もご覧ください。