Filters the HTML attributes applied to a menu item’s anchor element.
Parameters
$atts
array- The HTML attributes applied to the menu item’s
<a>
element, empty strings are ignored.
title
stringTitle attribute.target
stringTarget attribute.rel
stringThe rel attribute.href
stringThe href attribute.aria-current
stringThe aria-current attribute.
$menu_item
WP_Post- The current menu item object.
$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'
.
$depth
int- Depth of menu item. Used for padding.
Source
$atts = apply_filters( 'nav_menu_link_attributes', $atts, $menu_item, $args, $depth );
Example migrated from Codex:
The following example adds an attribute to specific menu items (34 and 39). Specify the ID of each menu item as an array.
In the simplest instance above, the filter adds the attribute to all menu items of all menus. In case you only want to add the attributes to a certain menu location, you can check for menu location in a conditional.
Example migrated from Codex:
The following function adds a class attribute to all
<a>
tags in a particular menu location (‘primary’).The default Walker menu does not include a class attribute on the anchor (
<a>
) element, but one can easily be added using this filter.You might notice there that I am only passing one parameter (
$atts
) to the function. This is because we only need the$atts
in this case and there is no need to pass other parameters. Alternatively, let’s say we wanted to add a class to all anchors which are not top level:In this case, we need to pass all four parameters because we are using the
$depth
parameter.Example migrated from Codex:
The following example adds an attribute to all
<a>
tags in thewp_nav_menu
Example migrated from Codex:
The following function adds a class to all menu items that have “Open link in a new window/tab” checked in the menu options.
I have solution to add class to anchor tag.
1: Step: add this in functions.php
2: Then use it like this
This is a good place to add the ARIA
menuitem
role: