WordPress – Jak wyświetlić wp_nav_menu() bez kontenera i rodzica – sama lista elementów
WordPress domyślnie wyświetla nasze menu (wp_nav_menu
) jako nienumerowaną listę <ul>
wraz z kontenrem lub wrapperem jak kto woli. Co zrobić jeśli chcemy pozbyć się dwóch elementów i wyświetlić tylko elementy listy wraz linkami? O ile przypadku kontenera nie jest trudne zadanie, gdyż dokumentacja jasno określa parametr o nazwie container
, który domyślnie jest elementem <div>
. Jeśli chcemy się go pozbyć to wystarczy podać pustą wartość dla tego parametru przy wywołaniu wp_nav_menu()
, w taki o to sposób:
[pastacode lang=”php” manual=”wp_nav_menu(array(%0A%20%20’theme_location’%20%3D%3E%20’primary_navigation’%2C%0A%20%20’container’%20%3D%3E%20”%2C%0A))%3B” message=”” highlight=”” provider=”manual”/]
Sprawa nieco komplikuje się jeśli chcemy pozbyć się rodzica <ul>
, gdyż w dokumentacji nie jest to jasno napisane. Niemniej wystarczy zajrzeć sobie do pliku wp-includes/nav-menu-template.php
i widzimy tak taki oto kawałek kodu:
[pastacode lang=”php” manual=”’items_wrap’%20%3D%3E%20’%3Cul%20id%3D%22%251%24s%22%20class%3D%22%252%24s%22%3E%253%24s%3C%2Ful%3E'” message=”wp-includes/nav-menu-template.php” highlight=”” provider=”manual”/]
W tym momencie wszystko staje się jasne :). Wystarczy podać %3$s
jak wartość dla parametru items_wrap i wszystko zadziała tak jak tego oczekujemy. Finalany kawałek kodu może więc wyglądać w taki sposób:
[pastacode lang=”php” manual=”wp_nav_menu(array(%0A%20%20’theme_location’%20%3D%3E%20’primary_navigation’%2C%0A%20%20’container’%20%3D%3E%20”%2C%0A%20%20’items_wrap’%20%3D%3E%20’%253%24s’%2C%0A))%3B” message=”” highlight=”” provider=”manual”/]
Dla ciekawskich link do dokumentacji wp_nav_menu
: