wp mobile nav paged with breacrumbs
$menu_name = 'mobile-menu';
$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' ) );
function compose_menu($menuitems) {
$hasChildren = array();
foreach($menuitems as $val){
if($val->menu_item_parent != 0){
$hasChildren[] = $val->menu_item_parent;
}
}
foreach($menuitems as $val){
if(in_array($val->ID, $hasChildren)){
$val->has_children = 1;
} else {
$val->has_children = 0;
}
}
$submenus = array();
foreach($menuitems as $menuitem) {
$submenus[$menuitem->menu_item_parent][] = $menuitem;
}
return $submenus;
}
function create_menu($menu_groups) {
$menu_parts = array();
foreach ($menu_groups as $key => $value) {
$ul_prop = $key == 0 ? 'class="top-level"' : 'class="sub-level" data-toggle="'.$key.'"';
$menu = '<ul '.$ul_prop.'>';
foreach ($value as $val) {
$title = $val->title;
$url = $val->url;
$id = $val->ID;
if(property_exists($val, 'has_children') && $val->has_children == 1) {
$menu .= '<li class="top-level" data-id="'.$id.'" >url: '.$url.' - title: '.$title.'</li>';
} else {
$menu .= '<li class="top-level" >url: '.$url.' - title: '.$title.'</li>';
}
}
$menu .= '</ul>';
$menu_parts[] = $menu;
}
return $menu_parts;
}
$menu_ready = create_menu(compose_menu($menuitems));
foreach($menu_ready as $menu){
echo $menu;
}