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_output
string- The menu item’s starting HTML output.
$menu_item
WP_Post- Menu item data object.
$depth
int- Depth of menu item. Used for padding.
$args
stdClass- An object of wp_nav_menu() arguments.
More Arguments from wp_nav_menu( … $args )
Array of nav menu arguments.
menu
int|string|WP_TermDesired menu. Accepts a menu ID, slug, name, or object.
menu_class
stringCSS class to use for the ul element which forms the menu.
Default'menu'
.menu_id
stringThe ID that is applied to the ul element which forms the menu.
Default is the menu slug, incremented.container
stringWhether to wrap the ul, and what to wrap it with.
Default'div'
.container_class
stringClass that is applied to the container.
Default ‘menu-{menu slug}-container’.container_id
stringThe ID that is applied to the container.container_aria_label
stringThe aria-label attribute that is applied to the container when it’s a nav element.fallback_cb
callable|falseIf the menu doesn’t exist, a callback function will fire.
Default is'wp_page_menu'
. Set to false for no fallback.before
stringText before the link markup.after
stringText after the link markup.link_before
stringText before the link text.link_after
stringText after the link text.echo
boolWhether to echo the menu or return it. Default true.depth
intHow many levels of the hierarchy are to be included.
0 means all. Default 0.
Default 0.walker
objectInstance of a custom walker class.theme_location
stringTheme location to be used. Must be registered with register_nav_menu() in order to be selectable by the user.items_wrap
stringHow the list items should be wrapped. Uses printf() format with numbered placeholders. Default is a ul with an id and class.item_spacing
stringWhether 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.