bux23
5/30/2017 - 6:36 PM

wp mobile nav paged with breacrumbs

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