我这里有一个DOM:
<ul class="sub-menu">
<li id="menu-item-1424" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat">
<a href="#">Item</a>
</li>
</ul>
我需要做的是,添加一个自定义类(
has-ripple
) 仅适用于
sub-menu > a
项目:
<ul class="sub-menu">
<li id="menu-item-1424" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat">
<a href="#" class="has-ripple">Item</a>
</li>
</ul>
这就是我所尝试的:
add_filter( \'nav_menu_link_attributes\', \'nav_menu_link_class\', 10, 3 );
function nav_menu_link_class( $atts, $item, $args ) {
$class = \'has-ripple\';
$atts[\'class\'] = $class;
return $atts;
}
这是可行的,但它也会将类添加到下拉列表之外的非子菜单a项中。那么我该怎么做才对呢?
最合适的回答,由SO网友:Frank P. Walentynowicz 整理而成
要仅应用于子菜单项,代码应为:
add_filter( \'nav_menu_link_attributes\', \'nav_menu_link_class\', 10, 2 );
function nav_menu_link_class( $atts, $item ) {
if( !$item->has_children && $item->menu_item_parent > 0 ) {
$class = \'has-ripple\';
$atts[\'class\'] = $class;
}
return $atts;
}