ok donc j'utilise le code suivant pour obtenir mes liens ...
<?php wp_nav_menu( array('theme_location' => 'primary', 'container' => '', 'menu_class' => 'mainnav') ); ?>
C'est mon CSS pour le nav ...
.mainnav a {
font-family: gooddog_plainregular, Arial, sans-serif;
font-size: 30px;
color: #ffea00;
text-decoration:none;
}
.mainnav li:after {
content: url('images/nav-divider.png');
}
.mainnav li.last:after {
content: none;
}
.mainnav li {
list-style: none;
display: inline;
font-size: 30px;
margin-bottom: 10px;
}
.mainnav li.last {
list-style: none;
display: inline;
font-size: 30px;
margin-bottom: 10px;
}
Le problème que j'ai est que le li.last
ne fonctionne pas, comment puis-je y ajouter la classe?
Merci :)
Voici une fonction que j'utilise pour ajouter une première/dernière classe aux éléments wp_nav_menu()
:
function add_first_and_last($items) {
$items[1]->classes[] = 'first';
$items[count($items)]->classes[] = 'last';
return $items;
}
add_filter('wp_nav_menu_objects', 'add_first_and_last');
Utilisez la last-child pseudoclass dans le CSS:
.mainnav li:last-child
{
/* your code */
}
La fonction mentionnée par Howdee_McGee était excellente, mais ne semblait fonctionner que pour les menus sans éléments de sous-menu. Pour un menu avec des éléments de sous-menu, essayez:
function add_first_and_last_top_level($items) {
$topitems = [];
foreach($items as $menu_item){
if($menu_item->menu_item_parent==0){
$topitems[] = $menu_item->menu_order;
}
}
$itemcount = end($topitems);
$items[1]->classes[] = 'menu-item-first';
$items[$itemcount]->classes[] = 'menu-item-last';
return $items;
}
add_filter('wp_nav_menu_objects', 'add_first_and_last_top_level');