Walker_Nav_Menu::start_lvl
Starts the list before the elements are added.
Method of the class: Walker_Nav_Menu{}
Hooks from the method
Returns
null. Nothing (null).
Usage
$Walker_Nav_Menu = new Walker_Nav_Menu(); $Walker_Nav_Menu->start_lvl( $output, $depth, $args );
- $output(string) (required) (passed by reference — &)
- Used to append additional content (passed by reference).
- $depth(int)
- Depth of menu item. Used for padding.
- $args(stdClass)
- An object of wp_nav_menu() arguments.
Default:null
Notes
- See: Walker::start_lvl()
Changelog
| Since 3.0.0 | Introduced. |
Walker_Nav_Menu::start_lvl() Walker Nav Menu::start lvl code WP 7.0
public function start_lvl( &$output, $depth = 0, $args = null ) {
if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
$t = '';
$n = '';
} else {
$t = "\t";
$n = "\n";
}
$indent = str_repeat( $t, $depth );
// Default class.
$classes = array( 'sub-menu' );
/**
* Filters the CSS class(es) applied to a menu list element.
*
* @since 4.8.0
*
* @param string[] $classes Array of the CSS classes that are applied to the menu `<ul>` element.
* @param stdClass $args An object of `wp_nav_menu()` arguments.
* @param int $depth Depth of menu item. Used for padding.
*/
$class_names = implode( ' ', apply_filters( 'nav_menu_submenu_css_class', $classes, $args, $depth ) );
$atts = array();
$atts['class'] = ! empty( $class_names ) ? $class_names : '';
/**
* Filters the HTML attributes applied to a menu list element.
*
* @since 6.3.0
*
* @param array $atts {
* The HTML attributes applied to the `<ul>` element, empty strings are ignored.
*
* @type string $class HTML CSS class attribute.
* }
* @param stdClass $args An object of `wp_nav_menu()` arguments.
* @param int $depth Depth of menu item. Used for padding.
*/
$atts = apply_filters( 'nav_menu_submenu_attributes', $atts, $args, $depth );
$attributes = $this->build_atts( $atts );
$output .= "{$n}{$indent}<ul{$attributes}>{$n}";
}