wpseek.com
A WordPress-centric search engine for devs and theme authors
wp_nav_menu_remove_menu_item_has_children_class › WordPress Function
Since6.2.0
Deprecatedn/a
› wp_nav_menu_remove_menu_item_has_children_class ( $classes, $menu_item, $args = false, $depth = false )
Parameters: (4) |
|
See: | |
Returns: |
|
Defined at: |
|
Codex: |
Remove the `menu-item-has-children` class from bottom level menu items.
This runs on the {@see 'nav_menu_css_class'} filter. The $args and $depth parameters were added after the filter was originally introduced in WordPress 3.0.0 so this needs to allow for cases in which the filter is called without them.Source
function wp_nav_menu_remove_menu_item_has_children_class( $classes, $menu_item, $args = false, $depth = false ) { /* * Account for the filter being called without the $args or $depth parameters. * * This occurs when a theme uses a custom walker calling the `nav_menu_css_class` * filter using the legacy formats prior to the introduction of the $args and * $depth parameters. * * As both of these parameters are required for this function to determine * both the current and maximum depth of the menu tree, the function does not * attempt to remove the `menu-item-has-children` class if these parameters * are not set. */ if ( false === $depth || false === $args ) { return $classes; } // Max-depth is 1-based. $max_depth = isset( $args->depth ) ? (int) $args->depth : 0; // Depth is 0-based so needs to be increased by one. $depth = $depth + 1; // Complete menu tree is displayed. if ( 0 === $max_depth ) { return $classes; } /* * Remove the `menu-item-has-children` class from bottom level menu items. * -1 is used to display all menu items in one level so the class should * be removed from all menu items. */ if ( -1 === $max_depth || $depth >= $max_depth ) { $classes = array_diff( $classes, array( 'menu-item-has-children' ) ); } return $classes; }