Add classes to remove via css [enhancement]
-
I wrap my menus on a class to cache the result, because big menus do a lot of requests to database. In this scenario I need the menu items with some classes to hide via CSS.
If it sounds good to you this is the piece of code I use:function setup_nav_item( $menu_item ) {
$roles = get_post_meta( $menu_item->ID, ‘_nav_menu_role’, true );if ( ! empty( $roles ) ) {
// add classes to menu
$classes = array_map(function($role){ return ‘role-‘.$role; }, $roles);
$menu_item->classes = array_merge($menu_item->classes, $classes);
$menu_item->roles = $roles;
}return $menu_item;
}Or better! You could provide a filter on your setup_nav_item() method. So I can extend without touch your code.
- The topic ‘Add classes to remove via css [enhancement]’ is closed to new replies.