update_menu_item_cache

The timeline below displays how wordpress function update_menu_item_cache has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Updates post and term caches for all linked objects for a list of menu items.
 *
 * @since 6.1.0
 *
 * @param WP_Post[] $menu_items Array of menu item post objects.
 */
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);
    }
}