Irgendwelche Dokumente für das Argument "items_wrap" von wp_nav_menu?
2 Antworten
- Stimmen
-
- 2011-06-05
Der Parameter
'items_wrap'
fürwp_nav_menu()
lautet standardmäßig:'<ul id="%1$s" class="%2$s">%3$s</ul>'
Diese aa Vorlage wirdmit
sprintf()
analysiert :$nav_menu .= sprintf( $args->items_wrap , esc_attr( $wrap_id ) // %1$s , esc_attr( $wrap_class ) // %2$s , $items // %3$s );
Dienummerierten Platzhalter -
%1$s
,%2$s
,%3$s
-beziehen sich auf die Argumente nach demersten Argumentinsprintf()
. Das Prozentzeichenmarkierteinen Platzhalter,die Nummer die Position und der Typs
bedeutet,dasser als Zeichenfolgebehandelt werden soll.
Ändern Sie den Typnur,wenn Sie wirklich wissen,was Sietun. :)-
$wrap_id
ist der Parameter'menu_id'
,wenn Sieihneingestellt haben,andernfallsister'menu-' . $menu->slug
. -
$wrap_class
ist der Parameter'menu_class'
,wenn Sieihnfestgelegt haben,andernfallsister leer. -
$items
isteine Zeichenfolge desinneren Inhalts des Menüs.
Angenommen,Siebenötigen keine
class
. Lassen Sieeinfach die zweite Zeichenfolge weg:wp_nav_menu( array( 'items_wrap' => '<ul id="%1$s">%3$s</ul>' ) );
Wenn Sie die
class
und dieid
nichtbenötigen undeinen anderen Containerbenötigen (weil Sieein custom walker ):wp_nav_menu( array( 'items_wrap' => '<div>%3$s</div>' ) );
Der Hauptpunktist: Siemüssen die Nummernfür die Ersetzungen verwenden,diein
wp_nav_menu()
angegeben sind.%3$s
istimmer die Liste der Elemente.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.-
Danke,dass du versucht hastes zuerklären.Ich seheesirgendwie,aberesfunktioniertnichtfürmich.Ichmöchtemeinen Li-Artikelneine Klasse hinzufügen.Sie scheinen ulfürjeden Artikel zu verwenden?Ich sehe auch kein Sprintfin meinem Code,daheristesnicht klar.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 Diesgiltfür das **gesamte Menü **,nichtfürjeden Punkt.Bittenutzen Sie unsere Suche,wir habenbestehende Lösungenfür Ihr Problem.@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
-
Ich habeim Internetgesucht und andere hatten dasgleiche Problem,dasichbrauchte,um die Walker-Klasse zuerweitern undmein HTML dort hinzuzufügen. Diesfunktioniertefürmichin Ordnung,aberichmusste ziemlich viel Code aus der alten Klasse kopieren und umbenennen und ändern und dannfestlegendas Menü,ummeine benutzerdefinierte Walker-Klasse zu verwenden.Vielen DankI 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
-
Ichbin vielleichtetwas zu spät zur Party,aber wenn Sie Textin `items_wrap`einführenmöchten,wie würden Siees danntun?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 Übersetzen Sie zuerst die Werte und übergeben Sie sie an die Zeichenfolge.@henrywright Translate the values first, the pass them to the string.
- 0
- 2016-09-19
- fuxia
-
- 2011-06-05
von dem,wasich sammle,erfassteseine Ausgabe undgibt dem lieine ID und Klassemit dem Menünamen.Wenn Sie alsoein bestimmtes Menüformatierenmöchten,greifen Sie auf dessen ID und/oder Klasse zu,wenn Sieesformatierenmöchten.Die 1 und 2istnureine andere Ausgabe.
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.
Ich verwende wp_nav_menu und versuche,eine benutzerdefinierte Ausgabefür die Dropdown-Listen der Unterebene zuerstellen.Ichbin auf das Argument "items_wrap"gestoßen,aberesgibt wirklichnicht viele Informationen darüber,wasesist,wieesfunktioniert und welche Art von Dingen damitgemacht werden können.
Wasgenauist "% 1 $ s " und "% 2 $ s "?(Kannesjemandmit Laienbegriffenerklären?)