2012-07-25 60 views
1

如何将菜单项(深度= 1)放入数组中?数组中的菜单项

wp_nav_menu输出带有ul和li元素的格式化列表。 wp_list_pages也输出带有ul和li的格式化列表。

我只想将深度一的菜单项(条纹标签)放到一个数组中。

我该如何做到这一点?

回答

3

我认为这将有助于您:wp get nav menu items

$menu_name = 'custom_menu_slug'; // Get the nav menu based on $menu_name (same as 'theme_location' or 'menu' arg to wp_nav_menu) 

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


    foreach ((array) $menu_items as $key => $menu_item) { 
     $title = $menu_item->title; 
    } 
    } 
+0

感谢您的回答。 $ menu_name将与菜单在选项“外观>菜单:菜单名称(用于我想要使用的菜单)”下调用的相同? – JohnSmith 2012-07-25 09:12:10

+0

否。[请选中此项](http://stackoverflow.com/questions/ 11642278/wordpress-list-menu-items-without-links-as-plain-text-without-links/11642603#11642603) – Libin 2012-07-25 10:01:27

+0

适用于我,没有位置检查 – malisokan 2013-08-22 08:20:14

0

感谢@Libin

想通了wp_get_nav_menu_items()

$menu_name = 'sidebar-menu'; //menu slug 
$locations = get_nav_menu_locations(); 
$menu = wp_get_nav_menu_object($locations[ $menu_name ]); 
$menuitems = wp_get_nav_menu_items($menu->term_id, array('order' => 'DESC')); 

echo "<pre>"; 
print_r($menuitems); 
echo "</pre>"; 

在这里我得到了整个菜单项

我在这里举一个例子http://wiki.workassis.com/wordpress-get-menu-array/