Je suis Twitter Bootstrap et j'ai besoin d'ajouter l'attribut data-toggle = "modal" à la balise a du lien de menu. Lors de la recherche de la plupart des résultats, faites référence à une marche pour les menus déroulants Twitter Bootstrap, mais ce menu n'a pas de listes déroulantes et j'ai seulement besoin d'ajouter l'attribut particulier.
Ensuite, j'ai trouvé ceci: Ajoutez des attributs personnalisés aux éléments de menu sans plugin, ce qui est très utile car il apparaît dans WordPress 3.6+, nous n'avons plus à faire de longs marcheurs complexes et à la place, nous pouvons utiliser ceci: http://codex.wordpress.org/Plugin_API / Filter_Reference / nav_menu_link_attributes
Cependant, à partir de cette exécution, cette référence API est assez nue et n'offre aucun exemple et comme elle est si nouvelle, il y a très peu de références à elle sur Google.
J'ai essayé ceci en premier:
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;
}
et cela fonctionne cependant comme prévu, ajoute l'attribut à toutes les balises a du menu. J'essaie donc de comprendre comment cibler un élément de menu avec # menu-item-7857 a or such.
Quelqu'un sait-il où trouver un exemple de ciblage d'un élément de menu ou est-il capable de déterminer comment se baser sur les informations contenues dans la référence d'API liée ci-dessus?
Pour noter, j'ai trouvé l'exemple suivant mais il ne cible que les articles qui ont des enfants, ce qui n'aide pas mais peut être dans la bonne direction:
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);
MISE À JOUR - La seule réponse ci-dessous semble être sur quelque chose, mais elle n'a pas pu déterminer comment trouver réellement le numéro pour cibler mon lien spécifique et où / comment ajouter ce conditionnel dans un exemple de travail. Ajout d'un commentaire mais sans réponse. Depuis environ 18 jours, je pensais voir si une prime aiderait.
Quand je regarde le code du lien que je veux cibler:
<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>
Je vois le numéro 7858 alors je pense que c'est peut-être le numéro que je devrais viser.
Mais quand j'essaye par exemple:
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;
}
}
Cependant, en ajoutant que si la déclaration, l'un des commentateurs a suggéré que j'obtienne l'erreur suivante:
Fatal error: Cannot use object of type WP_Post as array
Je suppose que plus de code est requis mais perdu. Pour rappel, sans l'instruction if, cela fonctionne, mais il cible tous les liens plutôt que le lien que je veux cibler.