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

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

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

提供: WordPress Codex 日本語版
< 関数リファレンス
2015年7月2日 (木) 07:00時点におけるMiccweb (トーク | 投稿記録)による版 (最新版のマージ)

移動先: 案内検索

管理画面→外観メニュー パネル内に作られたナビゲーションメニューのアイテムを返す関数です。 この関数は、メニュー名、スラッグ、IDなど、ナビゲーションメニューのアイテムを返します。返されるメニューアイテムは、通常の投稿やページを参照している、関係する nav_menu_item タイプの投稿です。

使い方

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

デフォルトの使い方

<?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 ); ?>%%%

パラメータ

$menu
string) (必須) メニューID、名前またはスラッグ
初期値: なし

nav menu location は有効な引数ではありません。

$args
array) (オプション) オプションの引数
初期値: なし

戻り値

インデックス化された WP_Post オブジェクトの配列 (メニューアイテムが無い場合は空) もしくは、booleanのfalseを返します。

以下はオブジェクトを返す例です。 子メニュー項目、カスタムナビゲーションのラベル名での、カテゴリーのリンク、タイトル属性、CSSクラス、リンクの関連と説明を返す例:

   Object (
       ID = 2178
       post_author = "1"
       post_date = "2013-08-20 20:37:40"
       post_date_gmt = "2013-08-20 20:37:40"
       post_content = "This is the link description"
       post_title = "Example Category"
       post_excerpt = "My title attribute"
       post_status = "publish"
       comment_status = "open"
       ping_status = "open"
       post_password = ""
       post_name = "2178"
       to_ping = ""
       pinged = ""
       post_modified = "2013-08-20 20:13:08"
       post_modified_gmt = "2013-08-20 20:13:08"
       post_content_filtered = ""
       post_parent = 12
       guid = "http://example.com/?p=2178"
       menu_order = 2
       post_type = "nav_menu_item"
       post_mime_type = ""
       comment_count = "0"
       filter = "raw"
       format_content = NULL
       db_id = 2178
       menu_item_parent = "2177"
       object_id = "19"
       object = "category"
       type = "taxonomy"
       type_label = "Category"
       url = "http://example.com/category/example-category/"
       title = "Example Category"
       target = ""
       attr_title = "My title attribute"
       description = "This is the link description"
       classes => Array (
           ['0'] = "my-class"
       )
       xfn = "contact"
   )


使用例

シンプルなメニューリストを作る例

    // $menu_name から nav menu を取得します。 
    // (wp_nav_menu への 'theme_location' や 'menu' 引数と同じです)
    // このコードは、メニュースラッグからメニュー ID を取得する wp_nav_menu のコードを元にしています。

    $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

改訂履歴

  • 3.0.0 にて導入されました。

ソースファイル

wp_get_nav_menu_items()wp-includes/nav-menu.php にあります。

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

最新英語版: WordPress Codex » Function Reference/wp get nav menu items最新版との差分


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