Menu dropdown i funkcja wp_nav_menu
-
Chciałbym wdrożyć do mojego szablonu dynamiczne, rozwijane menu, używając funkcji wp_nav_menu. Struktura mojego menu przedstawia się następująco:
<div class="menu"> <ul class="lavaLamp"> <li class="active"><a href="index">Dzial 1</a></li> <li><a href="adres">Dział 2 (rozwijany po najechaniu)</a> <ul class="dropdown"> <li><a href="adres">Submenu 1</a></li> <li><a href="adres">Submenu 2</a></li> </ul> </li> <li class="active"><a href="index">Dzial 3</a></li> </div>
Menu wstawiam do szablonu w ten sposob:
<?php $ustawienia = array( 'theme_location' => '', 'menu' => 'Główne menu', 'container' => 'dropdown', 'container_class' => 'dropdown', 'container_id' => 'dropdown', 'menu_class' => 'dropdown', 'menu_id' => 'dropdown', 'echo' => true, 'fallback_cb' => '', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 'items_wrap' => '%3$s', 'depth' => 2, 'walker' => '' ); ?> <div class="menu"> <ul class="lavaLamp"> <?php wp_nav_menu($ustawienia); ?> <?php //wp_nav_menu(array('menu' => 'Główne menu', 'items_wrap' => '%3$s')); ?> </ul> </div>
Nie wyswietla sie ono jednak tak jak powinno. Wszystkie elementy sa od razu wyswietlone (Submenu 1 i 2 powinny byc widoczne dopiero po najechaniu na Dzial 2). Jak widac, dla elementu, ktory ma submenu powinna byc przypisywana klasa „dropdown”. Jak mozna to wszystko poprawnie skonfigurowac?
-
Raczej bym to zrobił w ten sposób:
<!-- Nawigacja Pozioma --> <div id="nav"> <?php wp_nav_menu( array( 'menu' => 'Header', 'container' => false, 'menu_class' => false, 'menu_id' => false, 'items_wrap' => '<ul>%3$s</ul>' , 'item_class' => false, 'fallback_cb' => false, )); ?> </div> <!-- Koniec Nawigacji -->
Drop Down Menu uzyskuje się stosując selektory odpowiednio połączone hierarchicznie w dół czyli ul li ul itd. i dla takiego układu przypisujesz odpowiednie parametry i wartości już w arkuszu stylów (czyli nie dla klas czy atrybutów a dla samych znaczników)
Ew. możesz go zawrzeć w divie, żeby te ustawienia były dla menu i żeby inne elementy listy ich nie przejeły.
Wywalasz kontenery wywalasz dodatkowe klasy i atrybuty.
Jak chcesz uzyskać pod menu wtedy w panelu tam gdzie tworzysz menu przesuwasz widget w bok w prawo. Wtedy staje się on podrzędnym (submenu) a funkcja już bedzie wiedziała jak to wyświetlić w kodzie.
Na koniec pozostaje tylko kwestia formatowania css.
W praktyce to jest tak, że im mniej tym lepiej, prościej – im więcej tym nie lepiej 😛
Nawet bym to zrobił prościej:
<nav id="access" role="navigation"> <?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?> </nav>
[Przykład zerżnięty z motywu TventyEleven i można go spokojnie wykorzystać]
A już w edycji w panelu możesz dodawać dodatkowe klasy. O tym pewnie nie wiedziałeś? 😉
Dzieki, mam nadzieje, ze jakos to rozgryze.
A już w edycji w panelu możesz dodawać dodatkowe klasy. O tym pewnie nie wiedziałeś? 😉
Nie wiedzialem. W jaki sposob? Nie widze takiej opcji.
- Temat ‘Menu dropdown i funkcja wp_nav_menu’ jest zamknięty na nowe odpowiedzi.