nav_menu_item_id
云策文档标注
概述
nav_menu_item_id 是一个 WordPress 过滤器,用于修改菜单项列表元素的 ID 属性。它允许开发者在生成导航菜单时自定义每个菜单项的 ID。
关键要点
- 过滤器名称:nav_menu_item_id
- 主要用途:过滤菜单项列表元素的 ID 属性
- 参数:$menu_item_id(当前 ID)、$menu_item(WP_Post 对象)、$args(wp_nav_menu() 参数对象)、$depth(菜单项深度)
- 默认 ID 格式:'menu-item-' . $menu_item->ID
- 相关函数:Walker_Nav_Menu::start_el()
代码示例
$id = apply_filters( 'nav_menu_item_id', 'menu-item-' . $menu_item->ID, $menu_item, $args, $depth );注意事项
- 此过滤器在 WordPress 3.0.1 中引入,4.1.0 版本添加了 $depth 参数
- 参数 $args 包含 wp_nav_menu() 的所有选项,如 menu_class、container 等
- 可用于增强菜单的可访问性或自定义样式
原文内容
Filters the ID attribute applied to a menu item’s list item element.
Parameters
$menu_item_idstring-
The ID attribute applied to the menu item’s
<li>element. $menu_itemWP_Post-
The current menu item.
$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
$id = apply_filters( 'nav_menu_item_id', 'menu-item-' . $menu_item->ID, $menu_item, $args, $depth );