当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

「関数リファレンス/wp get nav menu items」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(和訳をクリーンアップ。)
 
(3人の利用者による、間の7版が非表示)
1行目: 1行目:
{{NeedTrans}}
 
 
 
<div id="Description">
 
<div id="Description">
 
== 説明 ==
 
== 説明 ==
 
</div>
 
</div>
Returns the items from a navigation menu created in the [[Administration Panels#Appearance|Appearance]] → [[Appearance Menus SubPanel|Menus]] 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 <i>nav_menu_item</i> type posts which contain references to the normal posts/pages they are associated with.
+
[[Administration Panels#Appearance|管理画面→外観]] → [[Appearance Menus SubPanel|メニュー]] 内に作られたナビゲーションメニューのアイテムを返します。
 +
 
 +
この関数は、メニュー名、ID またはスラッグを受け取り、そのナビゲーションメニューのすべてのアイテムを返します。返されるメニューアイテムは実際には <i>nav_menu_item</i> タイプの投稿オブジェクトです。その投稿は、関連づけられた普通の投稿や固定ページへの参照情報を持ちます。
  
 
<div id="Usage">
 
<div id="Usage">
== 使用法 ==
+
== 使い方 ==
 
</div>
 
</div>
 +
 
  <?php $items = wp_get_nav_menu_items( $menu, $args ); ?>
 
  <?php $items = wp_get_nav_menu_items( $menu, $args ); ?>
  
<div id="Default Usage">
+
<div id="Default_Usage">
=== デフォルトの使用法 ===
+
=== デフォルトの使い方 ===
 
</div>
 
</div>
<?php $args = array(
+
 
 +
<pre>
 +
<?php $args = array(
 
         'order'                  => 'ASC',
 
         'order'                  => 'ASC',
 
         'orderby'                => 'menu_order',
 
         'orderby'                => 'menu_order',
24行目: 26行目:
 
         'output_key'            => 'menu_order',
 
         'output_key'            => 'menu_order',
 
         'nopaging'              => true,
 
         'nopaging'              => true,
         'update_post_term_cache' => false ); ?>%%%
+
         'update_post_term_cache' => false ); ?>
 +
</pre>
  
 
<div id="Parameters">
 
<div id="Parameters">
 
== パラメータ ==
 
== パラメータ ==
 
</div>
 
</div>
{{Parameter|$menu|string|Menu ID}}
 
The nav menu location is not a valid argument.
 
{{Parameter|$args|array|Optional arguments|optional}}
 
  
<div id="Return Values">
+
{{Parameter|$menu|文字列|メニューの ID、名前またはスラッグ。}}
 +
 
 +
::注意: 「メニューの位置」は有効な引数ではありません。例えば、ナビゲーションメニューを登録するときに関数 <tt>register_nav_menus()</tt> へ <tt>array( 'menu_1' => __( 'Menu 1', 'textdomain'))</tt> のような引数を渡したとします。この場合、位置のスラッグ <tt>'menu_1'</tt> は有効な引数ではありません。以下のサンプルコードで動作を確かめてください。
 +
 
 +
{{Parameter|$args|配列|オプションの引数|オプション}}
 +
 
 +
<div id="Return_Values">
 
== 戻り値 ==
 
== 戻り値 ==
 
</div>
 
</div>
Indexed array of WP_Post objects (empty if the menu contains no items) or bool false.
 
  
== Examples ==
+
拡張された WP_Post オブジェクトのインデックス付き配列(メニューにアイテムがなければ空)、または真偽値 false を返します。
=== Building simple menu list ===
+
  
 +
以下は返されるオブジェクトの例です。これはメニューの子アイテムで、カテゴリー(アーカイブ)ページへのリンクです。またカスタムのナビゲーションラベル、タイトル属性、CSS クラス、リンクの Rel 属性と説明を持ちます:
 +
 +
    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"
 +
    )
 +
 +
 +
<div id="Examples">
 +
== 使用例 ==
 +
</div>
 +
<div id="Building_simple_menu_list">
 +
=== シンプルなメニューリストを作る例 ===
 +
</div>
 
<pre>
 
<pre>
     // Get the nav menu based on $menu_name (same as 'theme_location' or 'menu' arg to wp_nav_menu)
+
     // $menu_name に基づいてナビゲーションメニューを取得します。
     // This code based on wp_nav_menu's code to get Menu ID from menu slug
+
    // (関数 wp_nav_menu の 'theme_location' 'menu' 引数と同じです)
 +
     // このコードは、メニュースラッグからメニュー ID を取得する wp_nav_menu のコードを元にしています。
  
 
     $menu_name = 'custom_menu_slug';
 
     $menu_name = 'custom_menu_slug';
  
 
     if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
 
     if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
+
        $menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
  
$menu_items = wp_get_nav_menu_items($menu->term_id);
+
        $menu_items = wp_get_nav_menu_items($menu->term_id);
  
$menu_list = '<ul id="menu-' . $menu_name . '">';
+
        $menu_list = '<ul id="menu-' . $menu_name . '">';
  
foreach ( (array) $menu_items as $key => $menu_item ) {
+
        foreach ( (array) $menu_items as $key => $menu_item ) {
    $title = $menu_item->title;
+
            $title = $menu_item->title;
    $url = $menu_item->url;
+
            $url = $menu_item->url;
    $menu_list .= '<li><a href="' . $url . '">' . $title . '</a></li>';
+
            $menu_list .= '<li><a href="' . $url . '">' . $title . '</a></li>';
}
+
        }
$menu_list .= '</ul>';
+
        $menu_list .= '</ul>';
 
     } else {
 
     } else {
$menu_list = '<ul><li>Menu "' . $menu_name . '" not defined.</li></ul>';
+
        $menu_list = '<ul><li>Menu "' . $menu_name . '" not defined.</li></ul>';
 
     }
 
     }
     // $menu_list now ready to output
+
     // $menu_list を出力する準備ができました
 
</pre>
 
</pre>
  
== 改訂履歴 ==
+
<div id="Change_Log">
 +
== 変更履歴 ==
 
</div>
 
</div>
* [[Version 3.0|3.0.0]] にて導入されました。
+
* 新規導入: [[Version 3.0|3.0.0]]
  
<div id="Source File">
+
<div id="Source_File">
 
== ソースファイル ==
 
== ソースファイル ==
 
</div>
 
</div>
 +
 
<tt>wp_get_nav_menu_items()</tt> は {{Trac|wp-includes/nav-menu.php}} にあります。
 
<tt>wp_get_nav_menu_items()</tt> は {{Trac|wp-includes/nav-menu.php}} にあります。
  
78行目: 137行目:
 
== 関連項目 ==
 
== 関連項目 ==
 
</div>
 
</div>
 +
 
{{Navigation Menu Tags}}
 
{{Navigation Menu Tags}}
  
{{原文|Function Reference/wp get nav menu items|134358}}<!-- 15:08, 10 August 2013 Djkaz 版 -->
+
{{Tag Footer}}
  
 +
{{原文|Function Reference/wp_get_nav_menu_items|154422}} <!-- 20:30, 27 October 2015 Disinfor 版 -->
  
{{Tag Footer}}
+
{{DEFAULTSORT:Wp_get_nav_menu_items}}
 +
[[Category:関数]]
 +
[[Category:wp3.0]]
  
[[Category:Functions]]
+
[[en:Function Reference/wp get nav menu items]]
[[Category:Template Tags]]
+
[[Category:New page created]]
+

2017年3月22日 (水) 00:15時点における最新版

管理画面→外観メニュー 内に作られたナビゲーションメニューのアイテムを返します。

この関数は、メニュー名、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
文字列) (必須) メニューの ID、名前またはスラッグ。
初期値: なし
注意: 「メニューの位置」は有効な引数ではありません。例えば、ナビゲーションメニューを登録するときに関数 register_nav_menus()array( 'menu_1' => __( 'Menu 1', 'textdomain')) のような引数を渡したとします。この場合、位置のスラッグ 'menu_1' は有効な引数ではありません。以下のサンプルコードで動作を確かめてください。
$args
配列) (オプション) オプションの引数
初期値: なし

戻り値

拡張された WP_Post オブジェクトのインデックス付き配列(メニューにアイテムがなければ空)、または真偽値 false を返します。

以下は返されるオブジェクトの例です。これはメニューの子アイテムで、カテゴリー(アーカイブ)ページへのリンクです。またカスタムのナビゲーションラベル、タイトル属性、CSS クラス、リンクの Rel 属性と説明を持ちます:

   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 に基づいてナビゲーションメニューを取得します。 
    // (関数 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 を出力する準備ができました

変更履歴

ソースファイル

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最新版との差分