Sie können den standardmäßig von wp_nav_menu bereitgestellten <ul>-Container über Parameter entfernen oder ändern (Codex), aber Sie können die <li>-Elemente, die jeden Menüpunkt umschließen, nicht entfernen. So können Sie sie tatsächlich entfernen
$menuParameters = array(
'container' => false,
'echo' => false,
'items_wrap' => '%3$s',
'depth' => 0,
);
echo strip_tags(wp_nav_menu( $menuParameters ), '<a>' );
Nur aus Neugierde, warum möchten Sie das tun? Sind Listenelemente nicht ziemlich der Standardweg, um ein Navigationsmenü zu erstellen?
Ich glaube
ist total vernünftig.
+Steven D. Sanders
..hmm ‚der Standardweg‘ – es gibt kein solches Konzept nur weil…
Im Allgemeinen ist nav->ul->li->a nur eine Komplikation einer einfachen Sache (nav->a).
Wie die Leute in diesem Thread darauf hingewiesen haben
<nav><a>...</nav>oder für zusätzliche Dekorationen<nav><div><a></a></div> ...</nav>…kann nicht einfacher sein.Ich habe an der Übernahme einer Nicht-WP-Vorlage in eine WP-Vorlage gearbeitet und möchte die gleiche DOM-Struktur und die gleichen Stile beibehalten. Die bestehende Struktur war zufällig
was Chris im Kommentar unten gepostet hat
Absolut vernünftig! Auch wenn HTML5 fantastisch ist, mag ich es nicht, wenn ich ein weiteres Tag um Navigationslinks wickeln muss. Ich benutze <nav> mit nur Anker-Tags in meinen Navigationsmenüs und reserviere <ul> für tatsächliche unsortierte Listen im Inhalt. Das ergibt mehr Sinn und ist meiner Meinung nach viel sauberer.
Danke Chris.
Ich suche nach einer Ausgabe, wie sie in den Kommentaren zu sehen ist, konnte aber diesen Ausschnitt nicht für mich zum Laufen bringen. Bitte, jemand, gib mir eine Hand. Ich verspreche, später zu helfen, die nette Art, HTML-Menüs in WP zu erstellen, zu verbreiten, okay?
stellen Sie sicher, dass Sie den Theme-Standort Ihres Menüs im Array angeben.
‘theme_location’ => ‘primary’,
Das Standard-WordPress-Menü ist ‚primary‘. Wenn Sie ein benutzerdefiniertes Menü verwenden, verwenden Sie stattdessen dessen Handle. Dann umhüllen Sie diesen gesamten Ausschnitt zwischen den <nav></nav>-Tags. Ich hoffe, das hilft.
Ich habe den Code auf verschiedene Arten ausprobiert, aber das Beste, was ich bekommen konnte, war ein Menü am Anfang meines, während ich es zur Gestaltung der von mir erstellten benutzerdefinierten Menüs verwenden möchte. Gibt es etwas Besonderes an der Art und Weise, wie das funktioniert?
„…Menü am Anfang meines <body>..“.
Ich bin mir nicht sicher, was Sie meinen. Haben Sie das Menü auf der Admin-Seite ausgewählt?
Gehen Sie zu Darstellung > Menüs und erstellen Sie das Menü, dann wählen Sie es unter „Theme-Positionen“ aus
So: http://codex.wordpress.org/Appearance_Menus_Screen
Oder fragen Sie nach dem Styling mit CSS? Geben Sie Ihrem <nav> einfach eine ID, um es mit Stilen auszuwählen.
Entschuldigung, wenn das nicht hilft. Wenn alles andere fehlschlägt, suchen Sie im WordPress-Codex, dort sollten Sie die richtige Antwort finden. http://codex.wordpress.org/Navigation_Menus
Viel Glück
Was ist mit Untermenüs? Wie soll es aussehen, wenn es ein Dropdown hat?
Ihr Untermenü in ein DIV einpacken könnte funktionieren
Danke, Chris!
Ausgezeichnete Website, tolle Tutorials hier und auf http://www.lynda.com. Ich habe auch Ihr Buch „Digging into WordPress“ gekauft. Ich empfehle es jedem, der WordPress lernen möchte. Vielen Dank für all Ihre Hilfe!
Ich habe mich gefragt, wie man die Listentags aus einem WordPress-Theme entfernt. Ich weiß nicht, warum es nicht einfach standardmäßig die Anker-Tags verwendet, aber danke für dieses Tutorial. Es wird die Entwicklung eines WordPress-Themes viel einfacher machen.
Hallo Chris,
Sie haben mich inspiriert, WordPress zu lernen. Danke.
Ich muss wissen, wie man das Span-Tag hinzufügt, um zusätzliche Wörter in einem dynamischen WordPress-Menüelement einzufügen, so wie Sie es mit Ihrem Menü gemacht haben?
Und in diesem Artikel haben Sie alle automatisch generierten WP-HTML-Tags für das Menü gestrippt. Wie werden Sie sie gestalten, wenn Sie ein Dropdown-Navigationsmenü entwerfen müssen?
Ich habe es so gemacht…
fügen Sie das Span-Tag zu link_before und after hinzu
vergessen Sie nicht, das Span-Tag (neben dem a-Tag) hinzuzufügen, damit es nicht gestrippt wird.
Es ist wirklich schön und einfach zu bedienen..
Darf ich noch etwas wissen?
Menünamen
Menünamen
Menünamen
Menünamen
Menünamen
Ich habe bereits eine Lösung hier gefunden http://stackoverflow.com/questions/5222140/remove-li-class-id-for-menu-items-and-pages-list?answertab=oldest#tab-top
aber das Problem ist, ich habe insgesamt 6 Menüs und zwei davon sind Dropdown-Menüs. Also sehe ich nach dem Hinzufügen dieses Codes, dass mein Dropdown nicht gut funktioniert und einige CSS nicht gut funktionieren. Aber jetzt möchte ich einige Menüs, die ich angeben werde, ohne Klasse haben
Super hilfreich! Danke!
eine weitere Lösung. http://wpquestions.com/question/show/id/2465
Dies war die PERFEKTE Lösung für eine Herausforderung, vor der ich bei der Arbeit stehe! Allerdings muss ich jetzt einen Weg finden, die
.current-menu-itembeizubehalten, damit ich sie zur Anzeige der aktiven Seite verwenden kann.Ich versuche, das Tab-System von Foundation mit
wp_nav_menuzu verwenden, um eine flüssige, einfach zu verwaltende Navigationsleiste zu erstellen…Gleiche Frage hier
Eine einfache Lösung gefunden. Benutze jQuery
Funktioniert super! Danke
Danke für die Hilfe dabei. Aber ich frage mich, wie wir die Klassen, die auf die A-Tags angewendet wurden, die auf den LI-Tags waren, bekommen können? Ich versuche, die aktuelle Seite zu bekommen, aber ich möchte auch die aktuelle übergeordnete Seite haben, bin also nicht sicher, ob wp_nav_menu hier irgendwie helfen kann?
Ich habe tatsächlich gesehen, dass Sie der Body-Klasse eine Klasse hinzufügen und die Navigationspunkte Klassen haben, um dies zu handhaben. Ich bin mir ziemlich sicher, dass Sie dies in Ihren Screencasts besprochen haben. Danke
PHP-Code
<?php $defaults = array( 'theme_location' => 'my-menu', 'container' => 'nav', 'container_class' => 'menu', 'echo' => false, 'fallback_cb' => false, 'items_wrap' => '%3$s', 'depth' => 0 ); echo strip_tags(wp_nav_menu( $defaults ), '<nav><a>'); ?>HTML-Ergebnis
es ist besser ;)
Danke, proxo!!! Es hat für mich funktioniert!! :)
Das ist gut.. jetzt möchte ich der dynamisch eine Klasse zuweisen
Die Ausgabe sollte so aussehen
<div class="ui secondary menu"><a href="https:///wordpress/lbs/" class="item">Home</a>
</div>
Das ist praktisch. Danke!
Hallo, können Sie mir sagen, wie ich zusätzliche Elemente in ein WordPress-Menü einfügen kann? Können wir das mit JavaScript machen? Zum Beispiel möchte ich auf meiner Website ein letztes Element in meinem Hauptmenü mit einer großen Dropdown-Box, um Social-Buttons anzuzeigen!
Gibt es eine Möglichkeit, nur die LI-Klasse und -ID zu entfernen?
Probieren Sie diese Lösung von Revelation Travis. Vielleicht hilft sie Ihnen?
„Hier ist eine Korrektur, die ich gefunden habe. Sie entfernt alle IDs und Klassen von wp_nav_menu, erlaubt Ihnen aber, Ihre eigenen „genehmigten“ Klassen und/oder IDs zu erstellen. Sie ändert auch „current-menu-item“ in „active“. Wenn Sie die Standard-WordPress-CSS-Stile beibehalten möchten, löschen Sie einfach diesen Teil des Codes. Um diesen Beitrag kurz zu halten, hier sind die Links zum Pastebin mit dem Code
http://pastebin.com/W16cxDfY – für Ihre functions.php-Datei
http://pastebin.com/CGx4aprf – für Ihre Vorlage, wo auch immer das Menü hingeht“
Ich habe mehrere Menüs unter Darstellung > Menüs erstellt und alles, was ich brauche, ist eine andere .current-menu-item-Klasse für jedes davon, da das linke Menü Dreiecke in den Hyperlinks hat, aber das Header-Menü und das untere Menü sind anders. Chrome, Safari IE 10 und Firefox zeigen das Menü korrekt an, aber in IE 6, 7, * und dem neuesten Opera, also auch in älteren Versionen, werden die Menüs falsch angezeigt. Weil alle Menüs die .current-menu-item-Klasse erben.
Beispiel CSS-Code, der geerbt und für die Header- und unteren Menüs geladen wird.
CSS current-menu-item Klasse für das linke Sidebar-Menü
.menu-wynajem-akcesoriow-container li.current-menu-item a {
margin-left:37px;
color: #000000;
font-weight:bold;
background: transparent url(images/arrow.png) 0px 15px no-repeat;
CSS current-menu-item Klasse für das Header-Menü
div#header-content-menu li.current-menu-item a {
color: #ffffff;
background-color:#445d8a;
height:52px;
}
CSS current-menu-item Klasse für das untere Menü
.columns-bottom .col-02 li.current_page_item a {
color: #4d74bc;
}
Alles, was ich weiß, ist, dass ich eine andere aktuelle Klasse oder ID für jedes Menü benötige, damit jeder Browser es korrekt anzeigt. Irgendwelche Ideen?
http://stackoverflow.com/questions/5222140/remove-li-class-id-for-menu-items-and-pages-list?answertab=oldest#tab-top
Der letzte Beitrag, wo Links zu Pastebin sind, könnte das eine Lösung sein?
Danke, proxo – dieser Codeausschnitt war genau das, was ich brauchte :-)
Hallo Freunde,
Ich habe ein Problem, das zu ändern
<
ul> Tag zu
<
div> Tag in wp_nav_menu.
Bitte helfen Sie mir..
Mein Navigationsformat ist wie folgt.
Homepage
Über uns
Kann mir jemand helfen…
Können Sie irgendwie die Klassen beibehalten, die im WP-Admin zugewiesen wurden?
Hallo,
Ich erstelle ein WordPress-Menü aus HTML. Mein Navigationsmenü sieht so aus:
<ul>
<li class=”current”><a href=”index.html” class=”m1″>Home Page</a></li>
<li><a href=”about-us.html” class=”m2″>About Us</a></li>
<li><a href=”articles.html” class=”m3″>Our Articles</a></li>
</ul>
Kann mir also jemand vorschlagen, wie ich das in einem WordPress-Menü machen kann
Aktuell habe ich es so gemacht:
<?php wp_nav_menu( array( ‘theme_location’ = > ‘primary’,’container_id’ = > ‘nav’,) );? >
Aber es hat nicht funktioniert.:(
Gute Lösung, aber ich konnte sie unter WordPress 3.6 nicht zum Laufen bringen. :-((
Dies ist meine Lösung, die ich mit WordPress 3.6 zum Laufen gebracht habe.
Danke dafür. Hat für mich in 3.6 funktioniert.
Funktioniert für mich.
Ich habe eine Methode mit
str_replaceentwickelt, um alle Klassen, einschließlich der für aktuelle Menüeinträge, auf den Links beizubehalten. Sie ist ziemlich unkompliziert.Ich habe einen Blogbeitrag darüber geschrieben, wenn Sie etwas mehr Informationen/Begründung wünschen.
Sie sind ein Lebensretter!
Ja, das ist eine sehr interessante Tatsache, denn wenn Sie eine Footer-Navigation erstellen, möchten Sie, dass diese benutzerdefinierten Menüs, die auf Ihren benutzerdefinierten Menüoptionen im Dashboard erstellt wurden, dynamisch hinzugefügt werden und immer zentriert sind. Es war einfacher, einen Anker zu zentrieren als die, die sich in li's befanden.
Wunderbar! Auf diese Seite kann ich mich immer verlassen, wenn es um gute Inhalte geht.
Bei einer Sache hänge ich noch fest…
Weiß jemand, wie man dem a-Tag eine Klasse hinzufügt (nicht dynamisch)
Ich brauche die gleiche Klasse für jedes a-Tag im Menü.
Ich konnte dies mit einer einfacheren Form von Ruuters jQuery-Lösung oben erreichen.
Wenn Sie dies zu Ihrer Funktionen-Datei hinzufügen
Und dann wickeln Sie Ihr wp_nav_menu wie folgt:
Damit können Sie genau dasselbe mit PHP machen, mit dem zusätzlichen Vorteil, dass es nicht fehlschlägt, wenn jemand JavaScript deaktiviert.
Hallo! Kann mir bitte, bitte jemand sagen, **wo** ich diesen Code einfügen soll, da er nirgends erwähnt wird. Ist es wirklich so offensichtlich und bin ich der Einzige, der es nicht herausfindet?
In jeder Vorlagendatei. z.B. index.php
HALLO Chris,
Zuerst einmal muss ich TAUSEND DANK sagen!!!
Ich habe nach der Lösung gegoogelt und die erste Antwort war Ihre!
Ich hatte ein Menü-Markup ohne das div / ul / li von
wp_nav_menu, nur ein nav / a – a – a – … / navDas Entfernen des Divs und des Ul war natürlich einfach, der CODEX!
Aber als es um die li ging, HOHOHO, hat es ein paar Stunden gedauert, bevor ich gegoogelt habe, LOL
Also nochmals TAUSEND DANK für das Teilen Ihrer Ninja-Code-Erfahrung !!!
Trisha
Danke, Sie haben mein Problem gelöst
Vielen Dank
Weiß jemand, wie man ein Untermenü (unsortierte Liste in einem li) nimmt, um diesen Kerl in ein Div zu packen?
Ich antworte zu spät für Sie Dan, schätze ich, aber es könnte jemand anderem helfen
Sie sollten die Funktionen start_lvl und end_lvl der Klasse Walker_Nav_Menu verwenden können. Zum Beispiel, wenn Sie dies zu functions.php hinzufügen
und rufen Sie Ihr Menü in Ihrem Theme wie folgt auf:
…etwas in der Art, denke ich :)
Vielen Dank, vielen Dank für dieses kleine Stück Code!!
Ich habe dies gerade für eine Website gemacht und es war schwierig, die Listenelemente zu entfernen, aber alle nützlichen Ahnenklassen wie „current-menu-item“ usw. beizubehalten. Die einzige Möglichkeit, wie ich es tun konnte, war mit einer Walker-Klasse, um die Ausgabe von wp_nav_menu direkt zu modifizieren.
Hier ist ein Link zu meiner Methode (wenn Links unerwünscht sind, sagen Sie es mir und ich werde alles hier einfügen): http://myquickfix.co.uk/2014/08/remove-and-tags-from-wordpress-menus-while-retaining-all-the-classes/
http://stackoverflow.com/questions/25680791/trying-to-fetch-wp-nav-menu-dynamically-in-wordpress?noredirect=1#comment40135231_25680791
Unter diesem Link stelle ich eine Frage, aber keine richtige Antwort. Ich habe meine Menüs-Bilder und HTML geteilt. Ich stecke fest, bitte helfen Sie mir, wenn Sie eine Lösung haben.
Vielen Dank im Voraus
Dieses Tutorial hat mir sehr geholfen.
Großen Dank
Tolle Tricks! Ich arbeite an einem solchen Problem, und CSS-Tricks lässt mich nie im Stich! Danke, Chris!
Das ist großartig, aber was, wenn Sie die CSS-Klassen, die in den Menüeinträgen unter /wp-admin/nav-menus.php definiert sind und normalerweise den li-Elementen zugewiesen würden, direkt den Ankern zuweisen möchten?
Ich habe das Gefühl, preg_replace könnte der einfachste Weg sein, dies zu tun. Ich bin überrascht, dass im Jahr 2015 die Walker-Klasse nicht flexibler und für Anfänger in der Theme-Entwicklung einfacher ist, um die Menüstruktur an jedes gewünschte Format anzupassen.
Tatsächlich hat das Lesen von Zoes Blogbeitrag oben mir geholfen, dies zu lösen. Danke Zoe!
Habe versucht, die Version von Chris Hill für WordPress 4.2.2 zu modifizieren, aber komischerweise konnte ich die
<
nav> nicht mit strip_tags, also habe ich sie einfach außerhalb des Echos platziert.
Sehr nette Antwort
Bitte leiten Sie mich an, wie ich das mit Ihrem Code erreichen kann
Dienstleistungen
Portfolio
Geschäft
Ich möchte der Klasse="item" hinzufügen
Danke
Sehr nette Antwort
Bitte leiten Sie mich an, wie ich das mit Ihrem Code erreichen kann
<div class="ui secondary menu"><a href="" class="item">Services</a>
<a href="" class="item">Portfolio</a>
<a href="" class="item">Shop</a>
</div>
Ich möchte <a> die Klasse "item" hinzufügenDanke
Diese Lösung scheint bei mir nicht zu funktionieren. Offensichtlich übersehe ich etwas, daher wäre jede Hilfe sehr willkommen.
Ich versuche, ein einfaches Nav-Tag mit verschachtelten a-Tags darin zu erstellen. Mit dieser Lösung verliere ich das ul und li, aber auch das "nav"-Tag komplett, so dass ich nur "a"-Tags übrig habe…
$menuParameters = array(
‘theme_location’ => ‘primary’,
‘container’ => false,
‘echo’ => false,
‘items_wrap’ => ‘%3$s’,
‘depth’ => 0,
);
Sie können die nav_menu_link_attributes verwenden
Entschuldigung für den letzten falschen Beitrag…
Es funktioniert für mich mit diesem
‘menu’=>‘mainmenu’,
‘echo’ => false,
);
echo strip_tags(wp_nav_menu( $menuParameters ), ‘‘ );
?>
Wie kann ich mit diesem Ausschnitt eine Klasse hinzufügen?
nav > a.classIch schaffe es, den
a-Teil zum Laufen zu bringen, aber es gelingt mir nicht, eine Klasse hinzuzufügenEs ist cool, dass wir die Menütiefe begrenzen können.
Was ich jedoch nicht verstehe, ist die Tatsache, dass dies nicht automatisch mit diesem Filter integriert ist, dass im WP Admin -> Design -> Menüs -> spezifisches Menü mit Tiefe 3
Der Benutzer kann immer noch Menüeinträge in den Tiefenebenen 4, 5, 6 usw. festlegen. Das verwirrt den Benutzer. Irgendwelche Vorschläge?