Ich bin Twitter Bootstrap und muss das Attribut data-toggle = "modal" zum Tag eines Menülinks hinzufügen. Beim Durchsuchen der meisten Ergebnisse wird auf die Suche nach Twitter-Bootstrap-Dropdown-Menüs verwiesen. Dieses Menü enthält jedoch keine Dropdown-Menüs, und ich muss nur das bestimmte Attribut hinzufügen.
Als nächstes fand ich Folgendes : Hinzufügen von benutzerdefinierten Attributen zu Menüelementen ohne Plug-In, was sehr hilfreich ist, da es in WordPress 3.6+ nicht mehr lange komplexe Walker benötigt und stattdessen verwendet werden kann: http://codex.wordpress.org/Plugin_API / Filter_Reference / nav_menu_link_attributes
Zum jetzigen Zeitpunkt ist diese API-Referenz jedoch recht einfach und enthält keine Beispiele. Da sie so neu ist, gibt es bei Google nur sehr wenige Verweise darauf.
Ich habe das zuerst versucht:
add_filter( 'nav_menu_link_attributes', 'mywp_contact_menu_atts', 10, 3 );
function pb_contact_menu_atts( $atts, $item, $args )
{
// inspect $item, then …
$atts['data-toggle'] = 'modal';
return $atts;
}
und das funktioniert, aber es fügt erwartungsgemäß das Attribut zu allen a-Tags im Menü hinzu. Also versuche ich herauszufinden, wie man einen Menüpunkt mit # menu-item-7857 a oder so ansteuert.
Weiß jemand, wo er ein Beispiel für die Ausrichtung auf ein Menüelement finden oder feststellen kann, wie er sich auf die Informationen stützen kann, die in der oben verlinkten API-Referenz enthalten sind?
Ich habe das folgende Beispiel gefunden, aber es zielt nur auf Elemente mit untergeordneten Elementen ab, was nicht hilfreich ist, aber möglicherweise in die richtige Richtung weist:
add_filter('nav_menu_link_attributes', function($atts, $item, $args) {
if ( $args->has_children )
{
$atts['data-toggle'] = 'dropdown';
$atts['class'] = 'dropdown-toggle';
}
return $atts;
}, 10, 3);
UPDATE (AKTUALISIERUNG) - Die einzige Antwort unten klingt so, als sei sie auf etwas gerichtet, aber es konnte nicht festgestellt werden, wie die Nummer für die Ausrichtung auf einen bestimmten Link tatsächlich gefunden werden kann und wo / wie diese Bedingung in einem funktionierenden Beispiel hinzugefügt werden soll. Kommentar hinzugefügt, aber nicht zurückgehört. Seit ungefähr 18 Tagen dachte ich, ich würde sehen, ob ein Kopfgeld helfen würde.
Wenn ich mir den Code für den Link ansehe, auf den ich abzielen möchte:
<li id="menu-item-7858" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7858"><a href="#" data-toggle="modal">Chat</a></li>
Ich sehe die Nummer 7858 und denke, das ist vielleicht die Nummer, auf die ich zielen sollte.
Aber wenn ich zum Beispiel versuche:
add_filter( 'nav_menu_link_attributes', 'my_chat_menu_atts', 10, 3 );
function my_chat_menu_atts( $atts, $item, $args ) {
if ( 7857 == $item['ID'] ) {
// inspect $item, then …
$atts['onclick'] = 'SnapEngage.startLink();';
return $atts;
}
}
Wenn ich jedoch die if-Anweisung hinzufüge, die der Kommentator vorgeschlagen hat, erhalte ich den folgenden Fehler:
Fatal error: Cannot use object of type WP_Post as array
Ich gehe davon aus, dass mehr Code benötigt wird, aber verloren geht. Zur Erinnerung, ohne die if-Anweisung funktioniert es, aber es zielt auf alle Links und nicht auf den einen Link, auf den ich zielen möchte.