给子菜单一个 class

Giving sub menus a class

我想为导航的子菜单起一个 class 名称。

这是我目前拥有的:

<?php
$defaults = array(
    'theme_location'  => '',
    'menu'            => 'main-menu',
    'container'       => 'div',
    'container_class' => '',
    'container_id'    => '',
    'menu_class'      => 'menu',
    'menu_id'         => '',
    'echo'            => true,
    'fallback_cb'     => 'wp_page_menu',
    'before'          => '',
    'after'           => '',
    'link_before'     => '',
    'link_after'      => '',
    'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
    'depth'           => 0,
    'walker'          => ''
);

wp_nav_menu( $defaults );
?>

我该怎么做?

您需要为 'nav_menu_css_class' 添加过滤器。
将以下内容放入主题的 functions.php 文件中:

add_filter( 'nav_menu_css_class', 'my_sub_menu_class', 10, 2 );
function my_sub_menu_class( $classes, $item ) {

    if ( $item->post_parent ) {
        $classes[] = 'your_class_name';
    }

    return $classes;
}