it-swarm.xyz

Есть какие-нибудь документы для аргумента wp_nav_menu "items_wrap"?

Я использую wp_nav_menu и пытаюсь создать пользовательский вывод для выпадающих подуровней. Я сталкивался с аргументом "items_wrap", но на самом деле не так много информации о том, что это такое, как оно работает и что можно с ним сделать.

Что именно это "% 1 $ s " и "% 2 $ s "? (Кто-нибудь может объяснить это с точки зрения непрофессионала?)

41
RodeoRamsey

Параметр 'items_wrap' для wp_nav_menu() по умолчанию:

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

Это a шаблон , который анализируется с 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>' ) );

Если вам не нужны class и id, и вы хотите другой контейнер (потому что вы использовали custom walker ):

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

Главное: вы должны использовать числа для замен, указанных в wp_nav_menu(). %3$s - это всегда список предметов.

56
fuxia

из того, что я собираю, он берет вывод и дает li идентификатор и класс с именем меню. Поэтому, когда вы хотите стилизовать определенное меню, вы берете его идентификатор и/или класс, если хотите его стилизовать. 1 и 2 - это просто другой вывод.

0
xLRDxREVENGEx