Algum documento para o argumento “items_wrap” do wp_nav_menu?

40

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?)

    
por RodeoRamsey 05.06.2011 / 07:01
fonte

2 respostas

53

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

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

Este é um modelo 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 espaços reservados numerados - %1$s , %2$s , %3$s - referem-se aos argumentos após 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 precisar do class e do id , e quiser outro contêiner (porque você usou um andador personalizado ):

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.

    
por fuxia 05.06.2011 / 07:58
fonte
0

a partir do que eu encontro, 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.

    
por xLRDxREVENGEx 05.06.2011 / 07:12
fonte