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:

wp_nav_menu(array(
  'theme_location' => 'primary_navigation',
  'container' => '',
));

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:

wp-includes/nav-menu-template.php
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>'

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:

wp_nav_menu(array(
  'theme_location' => 'primary_navigation',
  'container' => '',
  'items_wrap' => '%3$s',
));

Dla ciekawskich link do dokumentacji wp_nav_menu:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *