it-swarm.dev

Qualsiasi documento per l'argomento "items_wrap" di wp_nav_menu?

Sto usando wp_nav_menu e sto cercando di creare un output personalizzato per i menu a discesa sottolivello. Ho trovato l'argomento "items_wrap" ma non ci sono molte informazioni su cosa sia, come funzioni e su che tipo di cose si possano fare.

Cosa esattamente is "% 1 $ s " e "% 2 $ s "? (Qualcuno può spiegarlo in parole povere?)

41
RodeoRamsey

Il parametro 'items_wrap' per wp_nav_menu() ha come valore predefinito:

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

Questo a a template che viene analizzato con sprintf() :

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

I segnaposto numerati - %1$s, %2$s, %3$s - si riferiscono agli argomenti after il primo argomento in sprintf(). Il segno di percentuale indica un segnaposto, il numero della posizione e il tipo s significa che deve essere trattato come una stringa.
Non cambiare il tipo a meno che tu non sappia veramente cosa fai. :)

  • $wrap_id è il parametro 'menu_id' se lo hai impostato, altrimenti 'menu-' . $menu->slug.
  • $wrap_class è il parametro 'menu_class' se lo hai impostato, altrimenti è vuoto.
  • $items è una stringa del contenuto interno del menu.

Diciamo che non hai bisogno di un class. Basta omettere la seconda stringa:

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

Se non hai bisogno di class e id, e vuoi un altro container (perché hai usato un custom walker ):

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

Il punto principale è: devi usare i numeri per i rimpiazzi dati in wp_nav_menu(). %3$s è sempre la lista di elementi.

56
fuxia

da ciò che raccolgo prende un output e dà al li un id e una classe con il nome del menu. Quindi, quando vuoi disegnare un particolare menu, prendi il suo ID e/o classe se vuoi disegnarlo. il 1 e 2 è solo un'uscita diversa.

0
xLRDxREVENGEx