我想将类下拉列表仅添加到父元素。我试图将一些代码添加到functions.php,但这并不能解决我的问题。是否可以使用jquery / js做到这一点?
<nav class="container_menu">
<ul class="reset">
<li class="active "><a title="Home" href="/" class="class here">Home</a></li>
<li class="menu "><a title="parent" href="/parent" class="class here">parent</a>
<ul class="reset">
<li class=""><a title="child1" href="/child/child1">child 1</a></li>
<li class=""><a title=child2" href="/child/child2">Child 2</a></li>
</ul>
</li>
</ul>
</nav>
不使用jquery或javascript或其他框架客户端。
您可以创建一个函数并将过滤器添加到wp_nav_menu_objects,如下所示:
/**
* Add a parent CSS class for nav menu items.
*
* @param array $items The menu items, sorted by each menu item's menu order.
* @return array (maybe) modified parent CSS class.
*/
function wpdocs_add_menu_parent_class( $items ) {
$parents = array();
// Collect menu items with parents.
foreach ( $items as $item ) {
if ( $item->menu_item_parent && $item->menu_item_parent > 0 ) {
$parents[] = $item->menu_item_parent;
}
}
// Add class.
foreach ( $items as $item ) {
if ( in_array( $item->ID, $parents ) ) {
$item->classes[] = 'dropdown'; //here attach the class
}
}
return $items;
}
add_filter( 'wp_nav_menu_objects', 'wpdocs_add_menu_parent_class' );