¿Alguna documentación para el argumento “items_wrap” de wp_nav_menu?

40

Estoy usando wp_nav_menu y estoy intentando crear una salida personalizada para los menús desplegables de subnivel. Encontré el argumento "items_wrap" pero realmente no hay mucha información sobre qué es, cómo funciona y qué tipo de cosas se pueden hacer con él.

¿Qué es exactamente "% 1 $ s " y "% 2 $ s "? (¿Alguien puede explicarlo en términos sencillos?)

    
pregunta RodeoRamsey 05.06.2011 - 07:01

2 respuestas

53

El parámetro 'items_wrap' para wp_nav_menu() por defecto es:

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

Esta es una plantilla que se analiza con sprintf() :

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

Los marcadores de posición numerados - %1$s , %2$s , %3$s - consulte los argumentos después de el primer argumento en sprintf() . El signo de porcentaje marca un marcador de posición, el número en la posición y el tipo s significa que debe tratarse como una cadena.
No cambie el tipo a menos que realmente sepa lo que hace. :)

  • $wrap_id es el parámetro 'menu_id' si lo tiene configurado, de lo contrario es 'menu-' . $menu->slug .
  • $wrap_class es el parámetro 'menu_class' si lo tiene configurado, de lo contrario está vacío.
  • $items es una cadena del contenido interno del menú.

Digamos que no necesita un class . Simplemente omita la segunda cadena:

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

Si no necesita class y id , y desea otro contenedor (porque usó un andador personalizado ):

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

El punto principal es: tienes que usar los números para los reemplazos dados en wp_nav_menu() . %3$s es siempre la lista de elementos.

    
respondido por el fuxia 05.06.2011 - 07:58
0

de lo que recojo toma una salida y le da a li un id y una clase con el nombre de los menús. Por lo tanto, cuando desea aplicar un estilo a un menú en particular, puede capturar su id y / o clase si desea diseñarlo. El 1 y el 2 son solo una salida diferente.

    
respondido por el xLRDxREVENGEx 05.06.2011 - 07:12

Lea otras preguntas en las etiquetas