replace current_page_item class in menu

Add this line at top of your display element function:

add_filter('nav_menu_css_class', 'add_active_class_to_nav_menu');

Add this line at bottom of your display element function:

remove_filter('nav_menu_css_class', 'add_active_class_to_nav_menu');

Add this function somewhere in your themes functions.php:

function add_active_class_to_nav_menu($classes) {
    if (in_array('current-menu-item', $classes, true) || in_array('current_page_item', $classes, true)) {
        $classes = array_diff($classes, array('current-menu-item', 'current_page_item', 'active'));
        $classes[] = 'active';
    }
    return $classes;
}

Leave a Comment