WP_Customize_Nav_Menu_Setting::filter_wp_get_nav_menu_object( object|null $menu_obj, string $menu_id )

Filters the wp_get_nav_menu_object() result to supply the previewed menu object.


Description

Requesting a nav_menu object by anything but ID is not supported.

See also


Parameters

$menu_obj

(object|null) (Required) Object returned by wp_get_nav_menu_object().

$menu_id

(string) (Required) ID of the nav_menu term. Requests by slug or name will be ignored.


Return

(object|null)


Source

File: wp-includes/customize/class-wp-customize-nav-menu-setting.php

	public function filter_wp_get_nav_menu_object( $menu_obj, $menu_id ) {
		$ok = (
			get_current_blog_id() === $this->_previewed_blog_id
			&&
			is_int( $menu_id )
			&&
			$menu_id === $this->term_id
		);
		if ( ! $ok ) {
			return $menu_obj;
		}

		$setting_value = $this->value();

		// Handle deleted menus.
		if ( false === $setting_value ) {
			return false;
		}

		// Handle sanitization failure by preventing short-circuiting.
		if ( null === $setting_value ) {
			return $menu_obj;
		}

		$menu_obj = (object) array_merge( array(
				'term_id'          => $this->term_id,
				'term_taxonomy_id' => $this->term_id,
				'slug'             => sanitize_title( $setting_value['name'] ),
				'count'            => 0,
				'term_group'       => 0,
				'taxonomy'         => self::TAXONOMY,
				'filter'           => 'raw',
			), $setting_value );

		return $menu_obj;
	}


Changelog

Changelog
Version Description
WP-4.3.0 Introduced.