Title: wp-includes/nav-menu.php | Developer.WordPress.org

---

# File: wp-includes/nav-menu.php

 * hook[pre_wp_setup_nav_menu_item](https://developer.wordpress.org/reference/hooks/pre_wp_setup_nav_menu_item/)
 * Filters whether to short-circuit the wp_setup_nav_menu_item() output.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/pre_wp_setup_nav_menu_item/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/pre_wp_setup_nav_menu_item/#uses)
   | Source: [wp-includes/nav-menu.php:858](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L858-L858)
 * function[_wp_reset_invalid_menu_item_parent()](https://developer.wordpress.org/reference/functions/_wp_reset_invalid_menu_item_parent/)
 * Prevents menu items from being their own parent.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/_wp_reset_invalid_menu_item_parent/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/functions/_wp_reset_invalid_menu_item_parent/#uses)
   | Source: [wp-includes/nav-menu.php:1335](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L1335-L1349)
 * function[update_menu_item_cache()](https://developer.wordpress.org/reference/functions/update_menu_item_cache/)
 * Updates post and term caches for all linked objects for a list of menu items.
 * Used by [1 function](https://developer.wordpress.org/reference/functions/update_menu_item_cache/#used-by)
   | Uses [3 functions](https://developer.wordpress.org/reference/functions/update_menu_item_cache/#uses)
   | Source: [wp-includes/nav-menu.php:790](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L790-L816)
 * function[_wp_menus_changed()](https://developer.wordpress.org/reference/functions/_wp_menus_changed/)
 * Handles menu config after theme change.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/_wp_menus_changed/#used-by)
   | Uses [5 functions](https://developer.wordpress.org/reference/functions/_wp_menus_changed/#uses)
   | Source: [wp-includes/nav-menu.php:1215](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L1215-L1222)
 * function[wp_map_nav_menu_locations()](https://developer.wordpress.org/reference/functions/wp_map_nav_menu_locations/)
 * Maps nav menu locations according to assignments in previously active theme.
 * Used by [2 functions](https://developer.wordpress.org/reference/functions/wp_map_nav_menu_locations/#used-by)
   | Uses [1 function](https://developer.wordpress.org/reference/functions/wp_map_nav_menu_locations/#uses)
   | Source: [wp-includes/nav-menu.php:1233](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L1233-L1321)
 * hook[wp_get_nav_menu_name](https://developer.wordpress.org/reference/hooks/wp_get_nav_menu_name/)
 * Filters the navigation menu name being returned.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/wp_get_nav_menu_name/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_get_nav_menu_name/#uses)
   | Source: [wp-includes/nav-menu.php:227](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L227-L227)
 * function[wp_get_nav_menu_name()](https://developer.wordpress.org/reference/functions/wp_get_nav_menu_name/)
 * Returns the name of a navigation menu.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/wp_get_nav_menu_name/#used-by)
   | Uses [3 functions](https://developer.wordpress.org/reference/functions/wp_get_nav_menu_name/#uses)
   | Source: [wp-includes/nav-menu.php:206](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L206-L228)
 * function[_wp_delete_customize_changeset_dependent_auto_drafts()](https://developer.wordpress.org/reference/functions/_wp_delete_customize_changeset_dependent_auto_drafts/)
 * Deletes auto-draft posts associated with the supplied changeset.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/_wp_delete_customize_changeset_dependent_auto_drafts/#used-by)
   | Uses [7 functions](https://developer.wordpress.org/reference/functions/_wp_delete_customize_changeset_dependent_auto_drafts/#uses)
   | Source: [wp-includes/nav-menu.php:1183](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L1183-L1207)
 * hook[wp_add_nav_menu_item](https://developer.wordpress.org/reference/hooks/wp_add_nav_menu_item/)
 * Fires immediately after a new navigation menu item has been added.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/wp_add_nav_menu_item/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_add_nav_menu_item/#uses)
   | Source: [wp-includes/nav-menu.php:565](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L565-L565)
 * hook[has_nav_menu](https://developer.wordpress.org/reference/hooks/has_nav_menu/)
 * Filters whether a nav menu is assigned to the specified location.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/has_nav_menu/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/has_nav_menu/#uses)
   | Source: [wp-includes/nav-menu.php:195](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L195-L195)
 * hook[wp_get_nav_menu_object](https://developer.wordpress.org/reference/hooks/wp_get_nav_menu_object/)
 * Filters the nav_menu term retrieved for wp_get_nav_menu_object().
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/wp_get_nav_menu_object/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_get_nav_menu_object/#uses)
   | Source: [wp-includes/nav-menu.php:49](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L49-L49)
 * hook[nav_menu_description](https://developer.wordpress.org/reference/hooks/nav_menu_description/)
 * Filters a navigation menu item’s description.
 * Used by [2 functions](https://developer.wordpress.org/reference/hooks/nav_menu_description/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/nav_menu_description/#uses)
   | Source: [wp-includes/nav-menu.php:979](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L979-L979)
 * hook[wp_setup_nav_menu_item](https://developer.wordpress.org/reference/hooks/wp_setup_nav_menu_item/)
 * Filters a navigation menu item object.
 * Used by [2 functions](https://developer.wordpress.org/reference/hooks/wp_setup_nav_menu_item/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_setup_nav_menu_item/#uses)
   | Source: [wp-includes/nav-menu.php:1040](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L1040-L1040)
 * function[wp_get_associated_nav_menu_items()](https://developer.wordpress.org/reference/functions/wp_get_associated_nav_menu_items/)
 * Returns the menu items associated with a particular object.
 * Used by [2 functions](https://developer.wordpress.org/reference/functions/wp_get_associated_nav_menu_items/#used-by)
   | Uses [3 functions](https://developer.wordpress.org/reference/functions/wp_get_associated_nav_menu_items/#uses)
   | Source: [wp-includes/nav-menu.php:1055](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L1055-L1088)
 * function[_wp_delete_post_menu_item()](https://developer.wordpress.org/reference/functions/_wp_delete_post_menu_item/)
 * Callback for handling a menu item when its original object is deleted.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/_wp_delete_post_menu_item/#used-by)
   | Uses [2 functions](https://developer.wordpress.org/reference/functions/_wp_delete_post_menu_item/#uses)
   | Source: [wp-includes/nav-menu.php:1098](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L1098-L1106)
 * function[_wp_delete_tax_menu_item()](https://developer.wordpress.org/reference/functions/_wp_delete_tax_menu_item/)
 * Serves as a callback for handling a menu item when its original object is deleted.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/_wp_delete_tax_menu_item/#used-by)
   | Uses [2 functions](https://developer.wordpress.org/reference/functions/_wp_delete_tax_menu_item/#uses)
   | Source: [wp-includes/nav-menu.php:1118](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L1118-L1126)
 * function[_wp_auto_add_pages_to_menu()](https://developer.wordpress.org/reference/functions/_wp_auto_add_pages_to_menu/)
 * Automatically add newly published page objects to menus with that as an option.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/_wp_auto_add_pages_to_menu/#used-by)
   | Uses [3 functions](https://developer.wordpress.org/reference/functions/_wp_auto_add_pages_to_menu/#uses)
   | Source: [wp-includes/nav-menu.php:1138](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L1138-L1173)
 * function[wp_setup_nav_menu_item()](https://developer.wordpress.org/reference/functions/wp_setup_nav_menu_item/)
 * Decorates a menu item object with the shared navigation menu item properties.
 * Used by [3 functions](https://developer.wordpress.org/reference/functions/wp_setup_nav_menu_item/#used-by)
   | Uses [16 functions](https://developer.wordpress.org/reference/functions/wp_setup_nav_menu_item/#uses)
   | Source: [wp-includes/nav-menu.php:845](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L845-L1041)
 * hook[nav_menu_attr_title](https://developer.wordpress.org/reference/hooks/nav_menu_attr_title/)
 * Filters a navigation menu item’s title attribute.
 * Used by [2 functions](https://developer.wordpress.org/reference/hooks/nav_menu_attr_title/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/nav_menu_attr_title/#uses)
   | Source: [wp-includes/nav-menu.php:969](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L969-L969)
 * hook[wp_create_nav_menu](https://developer.wordpress.org/reference/hooks/wp_create_nav_menu/)
 * Fires after a navigation menu is successfully created.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/wp_create_nav_menu/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_create_nav_menu/#uses)
   | Source: [wp-includes/nav-menu.php:375](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L375-L375)
 * hook[wp_update_nav_menu](https://developer.wordpress.org/reference/hooks/wp_update_nav_menu/)
 * Fires after a navigation menu has been successfully updated.
 * Used by [3 functions](https://developer.wordpress.org/reference/hooks/wp_update_nav_menu/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_update_nav_menu/#uses)
   | Source: [wp-includes/nav-menu.php:402](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L402-L402)
 * function[wp_update_nav_menu_item()](https://developer.wordpress.org/reference/functions/wp_update_nav_menu_item/)
 * Saves the properties of a menu item or create a new one.
 * Used by [6 functions](https://developer.wordpress.org/reference/functions/wp_update_nav_menu_item/#used-by)
   | Uses [25 functions](https://developer.wordpress.org/reference/functions/wp_update_nav_menu_item/#uses)
   | Source: [wp-includes/nav-menu.php:421](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L421-L634)
 * hook[wp_update_nav_menu_item](https://developer.wordpress.org/reference/hooks/wp_update_nav_menu_item/)
 * Fires after a navigation menu item has been updated.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/wp_update_nav_menu_item/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_update_nav_menu_item/#uses)
   | Source: [wp-includes/nav-menu.php:631](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L631-L631)
 * function[wp_get_nav_menus()](https://developer.wordpress.org/reference/functions/wp_get_nav_menus/)
 * Returns all navigation menu objects.
 * Used by [7 functions](https://developer.wordpress.org/reference/functions/wp_get_nav_menus/#used-by)
   | Uses [3 functions](https://developer.wordpress.org/reference/functions/wp_get_nav_menus/#uses)
   | Source: [wp-includes/nav-menu.php:647](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L647-L666)
 * function[has_nav_menu()](https://developer.wordpress.org/reference/functions/has_nav_menu/)
 * Determines whether a registered nav menu location has a menu assigned to it.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/has_nav_menu/#used-by)
   | Uses [3 functions](https://developer.wordpress.org/reference/functions/has_nav_menu/#uses)
   | Source: [wp-includes/nav-menu.php:178](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L178-L196)
 * hook[wp_get_nav_menus](https://developer.wordpress.org/reference/hooks/wp_get_nav_menus/)
 * Filters the navigation menu objects being returned.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/wp_get_nav_menus/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_get_nav_menus/#uses)
   | Source: [wp-includes/nav-menu.php:665](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L665-L665)
 * function[is_nav_menu_item()](https://developer.wordpress.org/reference/functions/is_nav_menu_item/)
 * Determines whether the given ID is a nav menu item.
 * Used by [3 functions](https://developer.wordpress.org/reference/functions/is_nav_menu_item/#used-by)
   | Uses [2 functions](https://developer.wordpress.org/reference/functions/is_nav_menu_item/#uses)
   | Source: [wp-includes/nav-menu.php:238](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L238-L240)
 * function[_is_valid_nav_menu_item()](https://developer.wordpress.org/reference/functions/_is_valid_nav_menu_item/)
 * Determines whether a menu item is valid.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/_is_valid_nav_menu_item/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/functions/_is_valid_nav_menu_item/#uses)
   | Source: [wp-includes/nav-menu.php:679](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L679-L681)
 * function[wp_create_nav_menu()](https://developer.wordpress.org/reference/functions/wp_create_nav_menu/)
 * Creates a navigation menu.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/wp_create_nav_menu/#used-by)
   | Uses [1 function](https://developer.wordpress.org/reference/functions/wp_create_nav_menu/#uses)
   | Source: [wp-includes/nav-menu.php:252](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L252-L255)
 * function[wp_get_nav_menu_items()](https://developer.wordpress.org/reference/functions/wp_get_nav_menu_items/)
 * Retrieves all menu items of a navigation menu.
 * Used by [7 functions](https://developer.wordpress.org/reference/functions/wp_get_nav_menu_items/#used-by)
   | Uses [7 functions](https://developer.wordpress.org/reference/functions/wp_get_nav_menu_items/#uses)
   | Source: [wp-includes/nav-menu.php:715](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/nav-menu.php#L715-L781)

1 [2](https://developer.wordpress.org/reference/files/wp-includes/nav-menu.php/page/2/?output_format=md)

 [Next Page](https://developer.wordpress.org/reference/files/wp-includes/nav-menu.php/page/2/?output_format=md)