nav_menu_item_title
Allows you to change a menu item's title (link anchor text).
Usage
add_filter( 'nav_menu_item_title', 'wp_kama_nav_menu_item_title_filter', 10, 4 );
/**
* Function for `nav_menu_item_title` filter-hook.
*
* @param string $title The menu item's title.
* @param WP_Post $menu_item The current menu item object.
* @param stdClass $args An object of wp_nav_menu() arguments.
* @param int $depth Depth of menu item. Used for padding.
*
* @return string
*/
function wp_kama_nav_menu_item_title_filter( $title, $menu_item, $args, $depth ){
// filter...
return $title;
}
- $title(string)
- Menu item title.
- $item(WP_Post)
Current menu item object. Example:
- $args(stdClass)
Object containing arguments from wp_nav_menu(). Example:
- $depth(int)
- Menu item level. Added in version 4.1.0 and used for indentation. Top-level menu items have
$depth = 0, their children have$depth = 1, and so on.
Examples
#1 Add an icon before a menu item title
The example uses a font icon from the Dashicons set.
add_filter( 'nav_menu_item_title', 'filter_nav_menu_item_title', 10, 4 );
function filter_nav_menu_item_title( $title, $item, $args, $depth ) {
$title = '<span class="dashicons dashicons-wordpress-alt"></span> ' . $title;
return $title;
}
An equivalent result can be produced when outputting the menu:
wp_nav_menu( [ 'link_before' => '<span class="dashicons dashicons-wordpress-alt"></span> ', ] );
Changelog
| Since 4.4.0 | Introduced. |
Where the hook is called
nav_menu_item_title
wp-includes/class-walker-nav-menu.php 249
$title = apply_filters( 'nav_menu_item_title', $title, $menu_item, $args, $depth );