Cette fonctionnalité devrait vraiment être dans le noyau de WordPress!
Quoi qu'il en soit, j'ai regardé la source du modèle de menu que vous avez envoyé dans un commentaire sur l'autre réponse, et j'ai trouvé un moyen (plutôt hacky) d'ajouter une classe sur les éléments de menu avec enfants. Il sous-classe fondamentalement le marcheur par défaut pour étendre son comportement par défaut. C'est probablement mieux si vous le mettez dans le functions.php
de votre thème. Voici le code:
<?php
class Arrow_Walker_Nav_Menu extends Walker_Nav_Menu {
function display_element($element, &$children_elements, $max_depth, $depth=0, $args, &$output) {
$id_field = $this->db_fields['id'];
if (!empty($children_elements[$element->$id_field])) {
$element->classes[] = 'arrow'; //enter any classname you like here!
}
Walker_Nav_Menu::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
}
}
?>
Pour appeler, vous aurez besoin d'ajouter l'argument walker
lorsque vous appelez wp_nav_menu()
dans votre thème, comme ceci:
<?php
wp_nav_menu(array('walker' => new Arrow_Walker_Nav_Menu, [other arguments...]))
?>
Espoir qui fonctionne pour vous! Je l'ai seulement testé superficiellement, mais cela semble fonctionner. Faites-moi savoir s'il y a des cas de bordure où l'ajout de la classe échoue.
Utilisez-vous le constructeur de menu dans la version 3.0? Ou utilisez-vous des pages ou des catégories pour la navigation? Veuillez préciser comment vous obtenez les menus et illustrer avec votre code de travail afin que nous puissions mieux vous aider. – kevtrout
J'utilise le construit dans les menus personnalisés – Alex