Des docs pour l'argument «items_wrap» de wp_nav_menu?

40

J'utilise wp_nav_menu et j'essaie de créer une sortie personnalisée pour les menus déroulants de sous-niveau. Je suis tombé sur l'argument "items_wrap" mais il n'y a vraiment pas beaucoup d'informations sur ce que c'est, sur comment ça marche et sur le genre de choses qu'on peut en faire.

Qu'est-ce exactement que "% 1 $ s " et "% 2 $ s "? (Quelqu'un peut-il l'expliquer en termes simples?)

    
posée RodeoRamsey 05.06.2011 - 07:01
la source

2 réponses

53

Le paramètre 'items_wrap' pour wp_nav_menu() est par défaut:

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

Ceci est un modèle à analyser avec sprintf() :

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

Les espaces réservés numérotés - %1$s , %2$s , %3$s - font référence aux arguments après le premier argument de sprintf() . Le signe de pourcentage indique un espace réservé, le nombre correspondant à la position et le type s signifiant qu'il doit être traité comme une chaîne.
Ne changez pas le type sauf si vous savez vraiment ce que vous faites. :)

  • $wrap_id est le paramètre 'menu_id' si vous l'avez défini, sinon c'est 'menu-' . $menu->slug .
  • $wrap_class est le paramètre 'menu_class' si vous l'avez défini, sinon il est vide.
  • $items est une chaîne du contenu interne du menu.

Disons que vous n’avez pas besoin de class . Oubliez simplement la deuxième chaîne:

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

Si vous n'avez pas besoin de class et de id , vous voulez un autre conteneur (car vous avez utilisé un marcheur personnalisé ):

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

Le point principal est: Vous devez utiliser les nombres pour les remplacements donnés dans wp_nav_menu() . %3$s est toujours la liste des éléments.

    
réponse donnée fuxia 05.06.2011 - 07:58
la source
0

D'après ce que je comprends, il saisit une sortie et donne au li un identifiant et une classe avec le nom du menu. Ainsi, lorsque vous souhaitez attribuer un style à un menu particulier, vous devez saisir son identifiant et / ou votre classe si vous souhaitez le personnaliser. le 1 et 2 est juste une sortie différente.

    
réponse donnée xLRDxREVENGEx 05.06.2011 - 07:12
la source

Lire d'autres questions sur les étiquettes