it-swarm-pt.tech

Qualquer documentação para o argumento "items_wrap" do wp_nav_menu?

Eu estou usando wp_nav_menu e estou tentando criar saída personalizada para as listas suspensas de subnível. Eu me deparei com o argumento "items_wrap", mas não há muita informação sobre o que é, como funciona e que tipo de coisas podem ser feitas com ele.

O que exatamente é "% 1 $ s " e "% 2 $ s "? (Alguém pode explicar isso em termos leigos?)

41
RodeoRamsey

O parâmetro 'items_wrap' para wp_nav_menu() é padronizado para:

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

Isto é um template que é analisado com sprintf() :

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

Os placeholders numerados - %1$s, %2$s, %3$s - referem-se aos argumentos after o primeiro argumento em sprintf(). O sinal de porcentagem marca um espaço reservado, o número da posição e o tipo s significa que ele deve ser tratado como uma string.
Não altere o tipo a menos que você realmente saiba o que faz. :)

  • $wrap_id é o parâmetro 'menu_id' se você tiver definido, senão é 'menu-' . $menu->slug.
  • $wrap_class é o parâmetro 'menu_class' se você tiver definido, senão está vazio.
  • $items é uma string do conteúdo interno do menu.

Digamos que você não precisa de um class. Apenas omita a segunda string:

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

Se você não precisa dos nomes class e id e deseja outro container (porque você usou um custom walker ):

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

O ponto principal é: você tem que usar os números para as substituições dadas em wp_nav_menu(). %3$s é sempre a lista de itens.

56
fuxia

pelo que eu sei, ele pega uma saída e dá ao li um id e uma classe com o nome do menu. Então, quando você quer estilizar um menu em particular, você pega seu id e/ou classe se você quiser estilizá-lo. o 1 e 2 é apenas uma saída diferente.

0
xLRDxREVENGEx