Ist es möglich, die ID oder den Slug einer Kategorie in die Ausgabe der Menüs von wp_nav_menu einzufügen?
Die Standardausgabe von wp_nav_menu lautet beispielsweise:
<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>
Ich frage mich, ob es möglich ist, der CSS-Klasse dafür den Kategorie-Slug hinzuzufügen <li>
, wie folgt :
<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>
Antworten:
Verwenden Sie den
nav_menu_css_class
Filter, um Klassen zurwp_nav_menu
Ausgabe hinzuzufügen .ID hinzufügen (keine zusätzliche Abfrage erforderlich):
Slug hinzufügen (lädt Kategorieobjekt über
get_category
):quelle
function my_special_nav_class( $classes, $item ) { if( 'page' == $item->object ){ $page = get_post( $item->object_id ); $classes[] = $page->post_name; } return $classes; } add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );
$item->ID
und$item->object_id
ist hier entscheidend. Gute Antwort!sanitize_title($item->title)
anstelle der Kategorie slug