钩子文档

wp_get_nav_menu_items

💡 云策文档标注

概述

wp_get_nav_menu_items 是一个 WordPress 过滤器,用于在返回导航菜单项时进行过滤。开发者可以通过此 Hook 修改菜单项数组,实现自定义逻辑。

关键要点

  • 过滤器名称:wp_get_nav_menu_items
  • 参数:$items(菜单项对象数组)、$menu(菜单对象)、$args(检索菜单项的参数数组)
  • 用途:允许开发者过滤或修改导航菜单项,例如基于条件排除特定项
  • 引入版本:WordPress 3.0.0

代码示例

function wpdocs_exclude_menu_items( $items ) {
    foreach ( $items as $key => $item ) {
        // If the menu item does not have the 'custom-item-class' class
        if ( ! in_array( 'custom-item-class', $item->classes ) ) {
            continue;
        }

        unset( $items[ $key ] );
    }

    return $items;
}

add_filter( 'wp_get_nav_menu_items', 'wpdocs_exclude_menu_items' );

📄 原文内容

Filters the navigation menu items being returned.

Parameters

$itemsarray
An array of menu item post objects.
$menuobject
The menu object.
$argsarray
An array of arguments used to retrieve menu item objects.

Source

return apply_filters( 'wp_get_nav_menu_items', $items, $menu, $args );

Changelog

Version Description
3.0.0 Introduced.

User Contributed Notes

  1. Skip to note 2 content

    function wpdocs_exclude_menu_items( $items ) {
        foreach ( $items as $key => $item ) {
            // If the menu item does not have the 'custom-item-class' class
            if ( ! in_array( 'custom-item-class', $item->classes ) ) {
                continue;
            }
    
            unset( $items[ $key ] );
        }
    
        return $items;
    }
    
    add_filter( 'wp_get_nav_menu_items', 'wpdocs_exclude_menu_items' );