wp_get_nav_menu_object( int|string|WP_Term $menu )

Returns a navigation menu object.


Description Description


Parameters Parameters

$menu

(int|string|WP_Term) (Required) Menu ID, slug, name, or object.


Top ↑

Return Return

(WP_Term|false) False if $menu param isn't supplied or term does not exist, menu object if successful.


Top ↑

Source Source

File: wp-includes/nav-menu.php

function wp_get_nav_menu_object( $menu ) {
	$menu_obj = false;

	if ( is_object( $menu ) ) {
		$menu_obj = $menu;
	}

	if ( $menu && ! $menu_obj ) {
		$menu_obj = get_term( $menu, 'nav_menu' );

		if ( ! $menu_obj ) {
			$menu_obj = get_term_by( 'slug', $menu, 'nav_menu' );
		}

		if ( ! $menu_obj ) {
			$menu_obj = get_term_by( 'name', $menu, 'nav_menu' );
		}
	}

	if ( ! $menu_obj || is_wp_error( $menu_obj ) ) {
		$menu_obj = false;
	}

	/**
	 * Filters the nav_menu term retrieved for wp_get_nav_menu_object().
	 *
	 * @since 4.3.0
	 *
	 * @param WP_Term|false      $menu_obj Term from nav_menu taxonomy, or false if nothing had been found.
	 * @param int|string|WP_Term $menu     The menu ID, slug, name, or object passed to wp_get_nav_menu_object().
	 */
	return apply_filters( 'wp_get_nav_menu_object', $menu_obj, $menu );
}

Top ↑

Changelog Changelog

Changelog
Version Description
3.0.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex

    Examples

    // By name.
    $menu = wp_get_nav_menu_object( 'wpdocs mainmenu' );
    
    // By slug.
    $menu = wp_get_nav_menu_object( 'wpdocs-mainmenu' );
    
    // By ID.
    $menu_name = 'wpdocs mainmenu';
    $menu_obj  = get_term_by( 'name', $menu_name, 'nav_menu' );
    $menu_id   = $menu_obj->term_id;
    $menu = wp_get_nav_menu_object( $menu_id );
    
    
    // By location.
    $menu_name = 'primary';
    $locations = get_nav_menu_locations();
    $menu_id   = $locations[ $menu_name ] ;
    wp_get_nav_menu_object( $menu_id );
    

You must log in before being able to contribute a note or feedback.