Est-il possible d'ajouter l'id ou le slug d'une catégorie dans la sortie du menu wp_nav_menu?
Par exemple, la sortie standard de wp_nav_menu est la suivante:
<div class="menu-header">
<ul id="menu-categorieen" class="menu">
<li id="menu-item-4353" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-4353"><a href="http://domain/">Home</a></li>
<li id="menu-item-1034" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1034"><a href="http://domain/category/category_1/">Category 1</a></li>
<li id="menu-item-1039" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1039"><a href="http://domain/category/category_2/">Category 2</a></li>
<li id="menu-item-1032" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1032"><a href="http://domain/category/category_3/">Category 3</a></li>
</ul>
</div>
Je me demande s'il est possible d'ajouter la catégorie slug à la classe css pour ce <li>
, comme suit:
<div class="menu-header">
<ul id="menu-categorieen" class="menu">
<li id="menu-item-4353" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-4353"><a href="http://domain/">Home</a></li>
<li id="menu-item-1034" class="menu-category-1 menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1034"><a href="http://domain/category/category_1/">Category 1</a></li>
<li id="menu-item-1039" class="menu-category-2 menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1039"><a href="http://domain/category/category_2/">Category 2</a></li>
<li id="menu-item-1032" class="menu-category-3 menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1032"><a href="http://domain/category/category_3/">Category 3</a></li>
</ul>
</div>
Utilisez le filtre nav_menu_css_class
pour ajouter des classes à la sortie wp_nav_menu
.
Ajouter un ID (aucune requête supplémentaire requise):
function wpa_category_nav_class( $classes, $item ){
if( 'category' == $item->object ){
$classes[] = 'menu-category-' . $item->object_id;
}
return $classes;
}
add_filter( 'nav_menu_css_class', 'wpa_category_nav_class', 10, 2 );
Ajouter un slug (charge l’objet de catégorie via get_category
):
function wpa_category_nav_class( $classes, $item ){
if( 'category' == $item->object ){
$category = get_category( $item->object_id );
$classes[] = 'menu-' . $category->slug;
}
return $classes;
}
add_filter( 'nav_menu_css_class', 'wpa_category_nav_class', 10, 2 );