Des documents pour l'argument "items_wrap" de wp_nav_menu?
2 réponses
- votes
-
- 2011-06-05
Leparamètre
'items_wrap'
pourwp_nav_menu()
estpar défaut:'<ul id="%1$s" class="%2$s">%3$s</ul>'
Ce template quiest analysé avec
sprintf()
:$nav_menu .= sprintf( $args->items_wrap , esc_attr( $wrap_id ) // %1$s , esc_attr( $wrap_class ) // %2$s , $items // %3$s );
Lesespaces réservésnumérotés -
%1$s
,%2$s
,%3$s
-font référence aux arguments après lepremier argument desprintf()
. Le signepour centmarque unespace réservé,lenombre lapositionet letypes
signifie qu'il doit êtretraité comme une chaîne.
Nemodifiez letype que si vous savez vraiment ce que vousfaites. :)-
$wrap_id
est leparamètre'menu_id'
si vous l'avez défini,sinon c'est'menu-' . $menu->slug
. -
$wrap_class
est leparamètre'menu_class'
si vous l'avez défini,sinonilest vide. -
$items
est une chaîne du contenuinterne dumenu.
Supposons que vousn'ayezpasbesoin d'un
class
. Omettez simplement la deuxième chaîne:wp_nav_menu( array( 'items_wrap' => '<ul id="%1$s">%3$s</ul>' ) );
Si vousn'avezpasbesoin de la
class
et de l 'id
,et que vous voulez un autre conteneur (parce que vous avez utilisé un marcheurpersonnalisé ):wp_nav_menu( array( 'items_wrap' => '<div>%3$s</div>' ) );
Lepointprincipalest: Vous devez utiliser lesnombrespour les remplacements donnés dans
wp_nav_menu()
.%3$s
esttoujours la liste des éléments.The parameter
'items_wrap'
forwp_nav_menu()
defaults to:'<ul id="%1$s" class="%2$s">%3$s</ul>'
This a a template that is parsed with
sprintf()
:$nav_menu .= sprintf( $args->items_wrap , esc_attr( $wrap_id ) // %1$s , esc_attr( $wrap_class ) // %2$s , $items // %3$s );
The numbered placeholders –
%1$s
,%2$s
,%3$s
– refer to the arguments after the first argument insprintf()
. The percent sign marks a placeholder, the number the position and the types
means it should be treated as a string.
Do not change the type unless you really know what you do. :)$wrap_id
is the parameter'menu_id'
if you have it set, else it is'menu-' . $menu->slug
.$wrap_class
is the parameter'menu_class'
if you have it set, else it is empty.$items
is a string of the inner content of the menu.
Let’s say you don’t need a
class
. Just omit the second string:wp_nav_menu( array( 'items_wrap' => '<ul id="%1$s">%3$s</ul>' ) );
If you don’t need the
class
and theid
, and you want another container (because you used a custom walker):wp_nav_menu( array( 'items_wrap' => '<div>%3$s</div>' ) );
The main point is: You have to use the numbers for the replacements given in
wp_nav_menu()
.%3$s
is always the list of items.-
Merci d'essayer d'expliquer.Je le voisen quelque sortemais çane marchepaspourmoi.Je veux ajouter une classe àmes éléments li.Vous semblez utiliser ulpour chaque élément?Jene voispasnonplus de sprintf dansmon code,donc cen'estpas clair.Thanks for trying to explain. I sort of see it but it isn't working out for me. I want to add say a class to my li items. You seem to be using ul for each item ? I don't see any sprintf in my code either so it's not clear.
- 0
- 2016-09-09
- landed
-
@landed Ceciestpour le **menuentier **,paspour chaque élément.Veuillez utilisernotre recherche,nous avons des solutionsexistantespour votreproblème.@landed This is for the **whole menu**, not for each item. Please use our search, we have existing solutions for your problem.
- 1
- 2016-09-09
- fuxia
-
J'aifait une recherche sur le Webet d'autres onteu lemêmeproblème dontj'avaisbesoinpour étendre la classe demarcheuret ajoutermon html là-bas,celafonctionnaitbien pourmoi,maisj'ai dû copierbeaucoup de code de l'ancienne classeet le renommeret lemodifier,puis définirlemenupour utiliserma classe demarcheurpersonnalisée.MerciI did search the web and others had the same issue I needed to extend the walker class and add my html there this worked ok for me but I had to copy quite a lot of code from the old class and rename it and change it then set the menu to use my custom walker class. Thanks
- 0
- 2016-09-10
- landed
-
Je suispeut-être unpeuen retard à lafête,mais si vous vouliezintroduire dutexte dans `items_wrap`,comment leferiez-vous?I may be a bit late to the party but if you wanted to introduce text to `items_wrap` how would you i18n it?
- 0
- 2016-09-19
- henrywright
-
@henrywright Traduisez d'abord les valeurs,puispassez-les dans la chaîne.@henrywright Translate the values first, the pass them to the string.
- 0
- 2016-09-19
- fuxia
-
- 2011-06-05
d'après ce queje récupère,il saisit une sortieet donne au li unidentifiantet une classe avec lenom desmenus.Ainsi,lorsque vous souhaitez styliser unmenuparticulier,vous saisissez sonidentifiantet/ou sa classe si vous souhaitez le styliser.le 1et le 2 sontjuste une sortie différente.
from what i gather it grabs an output and give the li a id and class with the menus name. So when you want to style a particular menu you grab its id and or class if you want to style it. the 1 and 2 is just a different output.
J'utilise wp_nav_menu et j'essaie de créer une sortiepersonnaliséepour lesmenus déroulants de sous-niveau.Je suistombé sur l'argument "items_wrap"maisiln'y a vraimentpasbeaucoup d'informations sur ce que c'est,comment çamarcheet quelgenre de choses onpeutfaire avec.
Que signifieexactement "% 1 $ s "et "% 2 $ s "?(Quelqu'unpeut-il l'expliqueren termes simples?)