Skip to content

Instantly share code, notes, and snippets.

@abelsaad
Created January 14, 2021 08:53
Show Gist options
  • Save abelsaad/c4884f652dd5d9317b89695e2789f9c8 to your computer and use it in GitHub Desktop.
Save abelsaad/c4884f652dd5d9317b89695e2789f9c8 to your computer and use it in GitHub Desktop.
WordPress Custom Menus classes
<?php
add_filter('nav_menu_css_class', 'normalize_wp_classes', 10, 2);
// for the page menu fallback (wp_list_pages)
add_filter('page_css_class', 'normalize_wp_classes', 10, 2);
function normalize_wp_classes($classes, $item){
// old class => new class
$replacements = array(
'current-menu-item' => 'active',
'current-menu-parent' => 'active-parent',
'current-menu-ancestor' => 'active-parent',
'current_page_item' => 'active',
'current_page_parent' => 'active-parent',
'current_page_ancestor' => 'active-parent',
'current-page-item' => 'active',
'current-page-parent' => 'active-parent',
'current-page-ancestor' => 'active-parent'
);
// do the replacements above
$classes = strtr(implode(',', $classes), $replacements);
$classes = explode(',', $classes);
// remove any classes that are not present in the replacements array,
// and return the result
return array_unique(array_intersect(array_values($replacements), $classes));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment