Ich weiß, dass Sie eine Klasse in den benutzerdefinierten Menüoptionen hinzufügen können, aber sie fügt sie dem LI vor dem A hinzu. Ich möchte die Klasse direkt auf dieses bestimmte A und nicht auf das gesamte LI anwenden.
Also statt der Ausgabe zu sein
<li id="menu-item-51" class="NEWCLASS menu-item menu-item-type-custom menu-item-51"><a href="#">Link</a> </li>
Ich möchte, dass es auch so ist.
<li id="menu-item-51" class="menu-item menu-item-type-custom menu-item-51"><a href="#" class="NEWCLASS">Link</a></li>
Irgendwelche Ideen?
.class
auf.class a
?<li>
Element abzielt. Wenn Sie ein Untermenü unter diesem bestimmten Element haben, ist dies kein Problem. Sie können dies im CSS angehen (ich kann bei Bedarf Beispiele nennen).Antworten:
Sie können
nav_menu_css_class
Filter verwendenMit diesem $ item können Sie jede gewünschte Bedingung erfüllen. und dies fügt die Klasse dem spezifischen li hinzu und Sie können das a-Tag basierend darauf wie folgt formatieren:
quelle
get_page_template_slug
arbeiten. Irgendwelche Ideen?Ich habe an dieser Stelle eine Lösung gefunden, indem ich einen benutzerdefinierten Walker verwendet habe .
Zwei Schritte: Ersetzen Sie den Standardcode wp_nav_menu durch einen bearbeiteten und fügen Sie dann der Datei functions.php des Themas Code hinzu.
Ersetzen Sie zunächst den Standard-wp_nav_code durch den folgenden (der Code wird von der obigen Site kopiert):
Fügen Sie als Nächstes den folgenden Code zu functions.php hinzu. Auf diese Weise können Sie den Menü-Links tatsächlich eine Klasse hinzufügen:
Gegen Ende des Codes befinden sich mehrere Zeilen, die mit $ item_output beginnen. Insbesondere möchten Sie sich dieses Stück ansehen:
Weil diese Zeile die Ausgabe für den Anfang des Links HTML bestimmt. Wenn Sie es in so etwas ändern:
Dann wird allen Ihren Links im Menü class = "abc" hinzugefügt.
Das heißt, es erlaubt keine benutzerdefinierte Klasse für jeden Link (oder zumindest weiß ich nicht, wie man ihn codiert). Das ist ein Problem für mich.
Für diejenigen, die fragen, warum Sie dies tun möchten? Ich möchte, dass meine Menü-Links Leuchtkästen öffnen (genauer gesagt Farbfelder), und dazu sind Klassen für die Links erforderlich. Beispielsweise:
Gibt es möglicherweise eine Möglichkeit, die Klassen dynamisch zu generieren, z. B. "lightbox1" für den ersten Link, "lightbox2" für den zweiten Link usw.?
quelle
Gelöst !!!! Ich musste das herausfinden, um den Menüpunkt mit Inline-HTML in einer Fancybox zu verknüpfen. Fügen Sie den folgenden Code in die function.php Ihres Themas ein:
Erstellen Sie dann auf der Registerkarte "Menü" des WP-Dashboards einen benutzerdefinierten Link und fügen Sie ihn Ihrem Menü hinzu. Stellen Sie oben sicher, dass "Link Relationship (XFN)" aktiviert ist. Dieses Feld wird Ihrem benutzerdefinierten Menüelement hinzugefügt. Geben Sie "Fancybox" (ohne Anführungszeichen) in das Feld ein und speichern Sie Ihr Menü.
Die Funktion sucht nach dem Aufruf des Navigationsmenüs, findet dann, wo immer Sie eine haben,
rel="fancybox"
und ersetzt sie durch einerel="fancybox" class="fancybox"
. Sie können Fancybox durch jede Klasse ersetzen, die Sie zu Ihren Menüelementen hinzufügen müssen. Gemacht und gemacht!quelle
Aktuelle Antworten scheinen nicht zu erkennen, dass die Frage lautet, wie eine Klasse zum
a
Element und nicht zumli
Element hinzugefügt werden soll , oder dass sie zu kompliziert sind. Hier ist ein einfacher Ansatz, bei dem dernav_menu_link_attributes
Filter verwendet wird, mit dem Sie ein bestimmtes Menü basierend auf seinem Slug und einen bestimmten Seitenlink in diesem Menü basierend auf seiner ID auswählen können. Sie können var_dump $ args und $ item verwenden, um weitere Möglichkeiten zum Erstellen Ihrer Bedingung zu erhalten.quelle
if
if ($args->theme_location == 'footer-menu' )
Ich weiß, dass dies vor langer Zeit beantwortet wurde, aber genau wie allgemeine Informationen habe ich mithilfe der Option "Bildschirm" der WordPress-Administrationsseite für benutzerdefinierte Menüs herausgefunden, wie jedem Menüelement einzeln eine Klasse hinzugefügt werden kann.
quelle
Ich musste kürzlich etwas Ähnliches tun und fand einen anderen Weg. Ich musste eine ähnliche Klasse für ein Nivo Lightbox-Plugin hinzufügen. Also habe ich "nivo" zum rel-Attribut ("Link Relationship (XFN)") und dann das Folgende zum
nav_menu_link_attributes
Filter hinzugefügt .quelle
Aktivieren Sie im oberen Bereich der
Appearance -> Menus
SeiteScreen Options
das Kontrollkästchen vonCSS Classes
. Wenn Sie nun jeden der hinzugefügten Menüpunkte erweitern, wird einCSS Classes (optional)
Feld angezeigt.quelle