Intereting Posts

Как выводить меню, структурированное для навигации с вкладками?

У меня есть дизайн для моей веб-страницы, который использует вкладку навигации с двумя уровнями. В этом примере выбрана вкладка «TAB2», а нижняя часть – дочерняя.

ˬ |TAB1| |TAB2| |TAB3| tab2-item1 tab2-item2 tab2-item3ˬ tab2-item4 ... 

Единственная веб-страница, которую я мог найти, которая использует что-то simmilar, действительно старомодно, но показывает, что я хочу в целом. образец веб-страницы (не мой)

Я думаю, что для этого мне нужна следующая структура html: using bootstrap:

  //Bootstrap 2.32 nav tabs <ul class="nav nav-tabs"> <li class="active"><a href="#tab1" data-toggle="tab">TAB 1</a></li> <li><a href="#tab2" data-toggle="tab">TAB 2</a></li> </ul> <div class="tab-content"> <div class="tab-pane active" id="tab1"> <ul> <li>tab1-item1</li> <li>tab1-item2</li> <li>tab1-item3</li> </ul> </div> <div class="tab-pane" id="tab2"> <ul> <li>tab2-item1</li> <li>tab2-item2</li> <li>tab2-item3</li> <li>tab2-item4</li> </ul> </div> </div> 

Каков наилучший способ печати меню в этом формате?

Solutions Collecting From Web of "Как выводить меню, структурированное для навигации с вкладками?"

Какая жалость, на которую никто не ответил. Я сперва проверил класс walker, прежде чем узнал, что с wp_get_nav_menu_items () будет намного проще,

Это то, что я придумал. Не идеально, но он работает (только два уровня, которые достаточно для моей страницы).

 $menu_name = 'primary'; 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; $url = $menu_item->url; $curr_item_parent = $menu_item->menu_item_parent; $curr_item_id = $menu_item->db_id; if($curr_item_parent) { $sub_list[$curr_item_parent][] = array('title' => $title, 'url' => $url, 'id' =>$curr_item_id, 'parent_id' => $curr_item_parent); $parent_list[] = $curr_item_parent; } else { $tab_list[] = array('title' => $title, 'url' => $url, 'id' =>$curr_item_id); $toplevel_list[] = $curr_item_id; } $complete_list[] = $curr_item_id; } } $parentless_list = array_diff ($toplevel_list, array_unique($parent_list)); var_dump($parentless_list); $menu_output .="<ul class='nav nav-tabs'>"; foreach($tab_list as $tab) { $tab = (object)$tab; $menu_output .="<li class=''><a href='#{$tab->id}' data-toggle='tab'>{$tab->title}</a></li>"; } $menu_output .= "</ul>"; $menu_output .= "<div class='tab-content'>"; foreach($sub_list as $key=>$sub_array) { $menu_output .= "<div class='tab-pane' id='{$key}'>"; foreach($sub_array as $sub) { $sub = (object)$sub; $menu_output .="<li class=''><a href='#{$sub->url}' data-toggle='tab'>{$sub->title}</a></li>"; } $menu_output .= "</div>"; foreach($parentless_list as $dummy_item) { $menu_output .= "<div class='tab-pane' id='{$dummy_item}'></div>"; } } $menu_output .= "</div>"; echo $menu_output;