J'essaie de faire un menu avec wp_nav_menu()
. J'essaie d'ajouter plusieurs classes mais je n'ai pas d'expérience avec cela. Je pense que je dois écraser un cours mais ...
<div class="top-menu">
<ul class="nav_menu">
<li class="nav_menu-item"><a href="javascript:void(0)" class="nav-p">PRODUCTS</a>
<!-- ... -->
</li>
<li class="nav_menu-item"><a href="javascript:void(0)" class="nav-n">NEW</a>
<ul class="nav_submenu">
<!-- ... -->
</ul>
</li>
<li class="nav_menu-item">
<!-- ... -->
</li>
<li class="nav_menu-item">
<!-- ... -->
</li>
</ul>
Pourriez-vous m'aider avec le code?
Je ne sais pas quelles sont vos conditions pour chaque classe en fonction du crochet que vous recherchez: nav_menu_css_class
. Vous pouvez l'utiliser pour ajouter des classes ou supprimer des classes de chaque élément de liste <li>
dans le menu.
/**
* Modify list item classes of wp_nav_menu
* - https://codex.wordpress.org/Plugin_API/Filter_Reference/nav_menu_css_class
* - https://developer.wordpress.org/reference/hooks/nav_menu_css_class/
*
* @param Array $classes || List of list-item classes
* @param WP_Nav_Item Object $item || The Nav Menu Object, NOT the WP_Post object
*
* @return Array $classes
*/
function my_special_nav_class( $classes, $item ) {
$menu_to_test_against = 'MENU NAME HERE';
// Ensure we only apply this filter on the menu of our choice
if( ! has_term( $menu_to_test_against, 'nav_menu', $item ) ) {
return $classes;
}
$classes[] = 'nav-p';
$classes[] = 'nav-n';
return $classes;
}
add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );