Mykhaylo Petyakh
Mykhaylo Petyakh

Reputation: 23

Apply function only for specific menu / menu location

I use this function

add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);

function special_nav_class ($classes, $item) {

if (in_array('current-menu-item', $classes)){
    $classes[] = 'active ';
}

return $classes;
}

But how to use it only for one of my menus or menu locations?

Upvotes: 0

Views: 83

Answers (1)

Udit Rawat
Udit Rawat

Reputation: 674

You can use the third variable of 'nav_menu_css_class' and that is $args which gives you menu name. below is modified code.

add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 3);

function special_nav_class ($classes, $item, $args) {

    if (in_array('current-menu-item', $classes) && $args->menu == 'primary'){
        $classes[] = 'active ';
    }

    return $classes;
}

Upvotes: 3

Related Questions