상현
개발 덕후

wp_nav_menu()로 생성된 submenu ul에 클래스이름 추가

( 업데이트: )

🤔 무엇을

wp_nav_menu()로 생성된 메뉴중에 서브 메뉴에 ul에 클래스를 부여할 수 있는 옵션이 없다.

어떻게하면 서브메뉴에 특정한 클래스를 부여할 수 있을까?

🔑 해결

WordPress에서 메뉴 HTML을 만드는 데 사용하는 ‘walker’개체를 확장 할 수 있습니다. 하나의 메서드만 재정의 하면 됩니다.

class My_Walker_Nav_Menu extends Walker_Nav_Menu {
   function start_lvl(&$output, $depth = 0, $args = array()) {
     $indent = str_repeat("\t", $depth);
     $output .= "\n$indent
\n";
   }
 }Code language: PHP (php)

그런 다음 워커의 인스턴스를 인수로 전달하면 다음 wp_nav_menu와 같습니다.

wp_nav_menu(array(
  'walker' => new My_Walker_Nav_menu()
));Code language: PHP (php)