Filters a menu item’s starting output.
Description
The menu item’s starting output only includes $args->before, the opening <a>, the menu item’s title, the closing </a>, and $args->after. Currently, there is no filter for modifying the opening and closing <li> for a menu item.
Parameters
$item_outputstring- The menu item’s starting HTML output.
$menu_itemWP_Post- Menu item data object.
$depthint- Depth of menu item. Used for padding.
$argsstdClass- An object of wp_nav_menu() arguments.
More Arguments from wp_nav_menu( … $args )
Array of nav menu arguments.
menuint|string|WP_TermDesired menu. Accepts a menu ID, slug, name, or object.
menu_classstringCSS class to use for the ul element which forms the menu.
Default'menu'.menu_idstringThe ID that is applied to the ul element which forms the menu.
Default is the menu slug, incremented.containerstringWhether to wrap the ul, and what to wrap it with.
Default'div'.container_classstringClass that is applied to the container.
Default ‘menu-{menu slug}-container’.container_idstringThe ID that is applied to the container.container_aria_labelstringThe aria-label attribute that is applied to the container when it’s a nav element.fallback_cbcallable|falseIf the menu doesn’t exist, a callback function will fire.
Default is'wp_page_menu'. Set to false for no fallback.beforestringText before the link markup.afterstringText after the link markup.link_beforestringText before the link text.link_afterstringText after the link text.echoboolWhether to echo the menu or return it. Default true.depthintHow many levels of the hierarchy are to be included.
0 means all. Default 0.
Default 0.walkerobjectInstance of a custom walker class.theme_locationstringTheme location to be used. Must be registered with register_nav_menu() in order to be selectable by the user.items_wrapstringHow the list items should be wrapped. Uses printf() format with numbered placeholders. Default is a ul with an id and class.item_spacingstringWhether to preserve whitespace within the menu’s HTML.
Accepts'preserve'or'discard'. Default'preserve'.
Source
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $menu_item, $depth, $args );
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |
This hook is useful when you want to add extra html to a menu item output.
Example: add a custom sub menu based on a menu item that has a class “menu-item-target”
Note that $menu_item is not always a WP_Post but often gets sent in as stdClass, so don’t try to use any strict typing here.