钩子文档

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.

  • menu int|string|WP_Term
    Desired menu. Accepts a menu ID, slug, name, or object.
  • menu_class string
    CSS class to use for the ul element which forms the menu.
    Default 'menu'.
  • menu_id string
    The ID that is applied to the ul element which forms the menu.
    Default is the menu slug, incremented.
  • container string
    Whether to wrap the ul, and what to wrap it with.
    Default 'div'.
  • container_class string
    Class that is applied to the container.
    Default ‘menu-{menu slug}-container’.
  • container_id string
    The ID that is applied to the container.
  • container_aria_label string
    The aria-label attribute that is applied to the container when it’s a nav element.
  • fallback_cb callable|false
    If the menu doesn’t exist, a callback function will fire.
    Default is 'wp_page_menu'. Set to false for no fallback.
  • before string
    Text before the link markup.
  • after string
    Text after the link markup.
  • link_before string
    Text before the link text.
  • link_after string
    Text after the link text.
  • echo bool
    Whether to echo the menu or return it. Default true.
  • depth int
    How many levels of the hierarchy are to be included.
    0 means all. Default 0.
    Default 0.
  • walker object
    Instance of a custom walker class.
  • theme_location string
    Theme location to be used. Must be registered with register_nav_menu() in order to be selectable by the user.
  • items_wrap string
    How the list items should be wrapped. Uses printf() format with numbered placeholders. Default is a ul with an id and class.
  • item_spacing string
    Whether 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 );

Changelog

Version Description
4.1.0 The $depth parameter was added.
3.0.1 Introduced.