2017-08-28 20 views
0

私のトップレベルのナビゲーションのタイトルを取得する必要があります。私はすでにトップレベルのメニュー項目のIDを知っていますが、タイトルを取得する必要があります。それをどうすればできますか?IDからメニュー項目タイトルを取得

私は現在、このようなメニューがあります:イムの場合

  • レベル1
    • レベル2#1
    • レベル2#2
    • レベル2#3

を私が持っているレベル2のページのいずれかレベル1 メニュー項目 ID。私は、現在のテーマ場所のインスタンスでタイトルを取得する必要があります。

+0

https://wordpress.stackexchange.com/a/16337/121266 –

+0

@AlivetoDie以下のコードを使用するには? –

答えて

2

以下の機能を使用して、メニューIDを渡してメニュータイトルを取得します。

Function: wp_get_nav_menu_object($menu) // $menu can be 'id','name' or 'slug' 
Returns : Object (
     term_id => 4 
     name => My Menu Name 
     slug => my-menu-name 
     term_group => 0 
     term_taxonomy_id => 4 
     taxonomy => nav_menu 
     description => 
     parent => 0 
     count => 6 
    ) 

// in your case. 
$menu = wp_get_nav_menu_object($topParent); 
$menu_title = $menu->name; 

詳細はこちらをご覧ください。 https://codex.wordpress.org/Function_Reference/wp_get_nav_menu_object

、メニュータイトルを取得IDから

if(getTopSelectedMenu('primary')){ 
    $topParentId = intval(getTopSelectedMenu('primary')); 
    $menuLocations = get_nav_menu_locations(); // Get our nav locations (set in our theme, usually functions.php) 
              // This returns an array of menu locations ([LOCATION_NAME] = MENU_ID); 

    $menu = wp_get_nav_menu_object($menuLocations['primary']) ; // Get the *primary* menu object 

    $primaryNav = wp_get_nav_menu_items($menu->term_id); // Get the array of wp objects, the nav items for our queried location. 

    foreach ($primaryNav as $navItem) { 
     if ($navItem->ID == $topParentId) { 
      $topParentTitle = $navItem->title; 
     } 
    } 
} 
<div class="sidebar-menu-headline"><?=$topParentTitle?><i class="fa fa-arrow-down" aria-hidden="true"></i></div> 
+0

さて、私は明確にしましょう。メニュー名ではなく、メニュー項目のタイトルが必要です。例えば、私が>レベル1メニュー(ID:1)、>>レベル2メニュー(ID:2)、>>レベル2メニュー2(ID:3)を持っている場合、私は現在トップレベルのメニューID(この例では1) )。私はこのナビゲーションインスタンスからタイトル(レベル1メニュー)を取得する必要があります –

+0

私の答えを編集しました。 –

+0

ありがとうございます。魅力のように働いて、私の小さなホットフィックスを承認してください。また、私はあなたが何をしているのかを説明したことが大好きです:) –

関連する問題