从其ID获取菜单项标题

问题描述:

我需要获取顶级导航的标题。我已经知道顶级菜单项的ID,但我需要获得它的标题。如何做到这一点?从其ID获取菜单项标题

我现在有这样的菜单:

  • 1级
    • 级别2#1
    • Level2的#2
    • 级别2#3

,如果im上我有任何2级页面级别1 菜单项 ID。我需要在当前主题位置实例中获得标题。

<?php if(getTopSelectedMenu('primary')): 
      $topParent = intval(getTopSelectedMenu('primary')); 
      $topParentTitle = ""; 
    ?> 
     <div class="sidebar-menu-headline"><?=$topParentTitle?><i class="fa fa-arrow-down" aria-hidden="true"></i></div> 
    <?php 

     $args = array(
      'menu' => '', 
      'menu_class' => 'sidebar-menu', 
      'container' => 'ul', 
      'theme_location' => 'primary', 
      'level' => 2, 
      'child_of' => $topParent, 
      'echo' => FALSE, 
      'fallback_cb' => '__return_false' 
     ); 
     $submenu = wp_nav_menu($args); 

     if (! empty ($submenu))echo $submenu; 

    ?> 
+0

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

+0

@AlivetoDie? –

使用以下函数通过传递菜单标识获取菜单标题。

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

谢谢。像魅力一样工作,只是批准我的小修补程序。另外,我爱你解释什么是什么:) –