update_menu_item_cache()WP 6.1.0

Updates post and term caches for all linked objects for a list of menu items.

Хуков нет.

Возвращает

null. Ничего (null).

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

update_menu_item_cache( $menu_items );
$menu_items(WP_Post[]) (обязательный)
Array of menu item post objects.

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

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

Код update_menu_item_cache() WP 6.6.2

function update_menu_item_cache( $menu_items ) {
	$post_ids = array();
	$term_ids = array();

	foreach ( $menu_items as $menu_item ) {
		if ( 'nav_menu_item' !== $menu_item->post_type ) {
			continue;
		}

		$object_id = get_post_meta( $menu_item->ID, '_menu_item_object_id', true );
		$type      = get_post_meta( $menu_item->ID, '_menu_item_type', true );

		if ( 'post_type' === $type ) {
			$post_ids[] = (int) $object_id;
		} elseif ( 'taxonomy' === $type ) {
			$term_ids[] = (int) $object_id;
		}
	}

	if ( ! empty( $post_ids ) ) {
		_prime_post_caches( $post_ids, false );
	}

	if ( ! empty( $term_ids ) ) {
		_prime_term_caches( $term_ids );
	}
}