Filters the HTML attributes applied to a menu item’s anchor element.
Parameters
$attsarray- The HTML attributes applied to the menu item’s
<a>element, empty strings are ignored.
titlestringTitle attribute.targetstringTarget attribute.relstringThe rel attribute.hrefstringThe href attribute.aria-currentstringThe aria-current attribute.
$menu_itemWP_Post- The current menu item object.
$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'.
$depthint- 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$attsin 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
$depthparameter.Example migrated from Codex:
The following example adds an attribute to all
<a>tags in thewp_nav_menuExample 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
menuitemrole: