WP_Customize_Nav_Menu_Setting::filter_wp_get_nav_menu_object()publicWP 4.3.0

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

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

Метод класса: WP_Customize_Nav_Menu_Setting{}

Хуков нет.

Возвращает

Объект|null.

Использование

$WP_Customize_Nav_Menu_Setting = new WP_Customize_Nav_Menu_Setting();
$WP_Customize_Nav_Menu_Setting->filter_wp_get_nav_menu_object( $menu_obj, $menu_id );
$menu_obj(объект|null) (обязательный)
Object returned by wp_get_nav_menu_object().
$menu_id(строка) (обязательный)
ID of the nav_menu term. Requests by slug or name will be ignored.

Заметки

Список изменений

С версии 4.3.0 Введена.

Код WP_Customize_Nav_Menu_Setting::filter_wp_get_nav_menu_object() WP 6.5.2

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;
}