wp_nav_menu의“items_wrap”인수에 대한 문서가 있습니까?


41

내가 사용하고 wp_nav_menu을 하고 하위 수준 드롭 다운에 대한 사용자 정의 출력을 만들려고하고 있습니다. 나는 "items_wrap"인수를 만났지만 그것이 무엇인지, 어떻게 작동하는지, 어떤 종류의 일을 할 수 있는지에 대한 정보는 많지 않습니다.

" % 1 $ s "및 " % 2 $ s " 정확히 무엇입니까 ? (누군가의 말로 설명 할 수 있습니까?)

답변:


56

매개 변수 'items_wrap'에 대한 wp_nav_menu()기본값 :

'<ul id="%1$s" class="%2$s">%3$s</ul>' 

이것은 다음 과 같이 구문 분석되는 템플리트 입니다 sprintf().

$nav_menu .= sprintf( 
    $args->items_wrap
,   esc_attr( $wrap_id )    // %1$s
,   esc_attr( $wrap_class ) // %2$s
,   $items                  // %3$s
);

번호가 매겨진 자리는 - %1$s, %2$s, %3$s- 인수를 참조 최초의 인수 sprintf(). 백분율 기호는 자리 표시 자, 숫자 및 위치를 표시 s하며 문자열로 처리해야 함을 의미합니다.
실제로 자신이하는 일을 모른다면 유형을 변경하지 마십시오. :)

  • $wrap_id매개 변수 'menu_id'가 설정되어 있으면 매개 변수 이고 그렇지 않으면입니다 'menu-' . $menu->slug.
  • $wrap_class'menu_class'설정 한 경우 매개 변수 이며 그렇지 않은 경우 비어 있습니다.
  • $items 메뉴 내부 내용의 문자열입니다.

필요하지 않다고 가정 해 봅시다 class. 두 번째 문자열을 생략하십시오.

wp_nav_menu( array( 'items_wrap' => '<ul id="%1$s">%3$s</ul>' ) );

classand 가 필요없고 id다른 컨테이너를 원한다면 ( 커스텀 워커 를 사용했기 때문에 ) :

wp_nav_menu( array( 'items_wrap' => '<div>%3$s</div>' ) );

요점은 다음과 같습니다 wp_nav_menu().에 제공된 교체 번호를 사용해야합니다 . %3$s항상 항목 목록입니다.


설명해 주셔서 감사합니다. 나는 그것을 보았지만 그것은 나를 위해 작동하지 않습니다. 리 아이템에 클래스를 추가하고 싶습니다. 각 항목에 대해 ul을 사용하고있는 것 같습니다. 내 코드에 sprintf가 없으므로 명확하지 않습니다.
착륙

1
@landed 이것은 각 항목이 아니라 전체 메뉴 를위한 것입니다. 검색을 사용하십시오. 문제에 대한 기존 솔루션이 있습니다.
fuxia

나는 웹을 검색했고 다른 사람들은 워커 클래스를 확장하고 HTML을 추가하는 데 필요한 동일한 문제가 있었지만 나에게 잘 작동했지만 이전 클래스에서 상당히 많은 코드를 복사하고 이름을 바꾸고 변경해야했습니다. 사용자 정의 워커 클래스를 사용하는 메뉴입니다. 감사합니다
착륙

나는 파티에 조금 늦을지도 모르지만 items_wrap어떻게 텍스트를 소개하고 싶다면 어떻게 할 것입니까?
henrywright

@henrywright 먼저 값을 번역하고 문자열로 전달하십시오.
fuxia

0

내가 수집 한 것에서 출력을 잡고 메뉴 이름으로 ID와 클래스를 제공합니다. 따라서 특정 메뉴의 스타일을 지정하려면 스타일을 지정하려는 경우 해당 ID 및 클래스를 가져옵니다. 1과 2는 다른 출력입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.