wp_update_image_subsizes

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

WordPress Version: 6.3

/**
 * If any of the currently registered image sub-sizes are missing,
 * create them and update the image meta data.
 *
 * @since 5.3.0
 *
 * @param int $attachment_id The image attachment post ID.
 * @return array|WP_Error The updated image meta data array or WP_Error object
 *                        if both the image meta and the attached file are missing.
 */
function wp_update_image_subsizes($attachment_id)
{
    $image_meta = wp_get_attachment_metadata($attachment_id);
    $image_file = wp_get_original_image_path($attachment_id);
    if (empty($image_meta) || !is_array($image_meta)) {
        /*
         * Previously failed upload?
         * If there is an uploaded file, make all sub-sizes and generate all of the attachment meta.
         */
        if (!empty($image_file)) {
            $image_meta = wp_create_image_subsizes($image_file, $attachment_id);
        } else {
            return new WP_Error('invalid_attachment', __('The attached file cannot be found.'));
        }
    } else {
        $missing_sizes = wp_get_missing_image_subsizes($attachment_id);
        if (empty($missing_sizes)) {
            return $image_meta;
        }
        // This also updates the image meta.
        $image_meta = _wp_make_subsizes($missing_sizes, $image_file, $image_meta, $attachment_id);
    }
    /** This filter is documented in wp-admin/includes/image.php */
    $image_meta = apply_filters('wp_generate_attachment_metadata', $image_meta, $attachment_id, 'update');
    // Save the updated metadata.
    wp_update_attachment_metadata($attachment_id, $image_meta);
    return $image_meta;
}

WordPress Version: 5.3

/**
 * If any of the currently registered image sub-sizes are missing,
 * create them and update the image meta data.
 *
 * @since 5.3.0
 *
 * @param int $attachment_id The image attachment post ID.
 * @return array|WP_Error The updated image meta data array or WP_Error object
 *                        if both the image meta and the attached file are missing.
 */
function wp_update_image_subsizes($attachment_id)
{
    $image_meta = wp_get_attachment_metadata($attachment_id);
    $image_file = wp_get_original_image_path($attachment_id);
    if (empty($image_meta) || !is_array($image_meta)) {
        // Previously failed upload?
        // If there is an uploaded file, make all sub-sizes and generate all of the attachment meta.
        if (!empty($image_file)) {
            $image_meta = wp_create_image_subsizes($image_file, $attachment_id);
        } else {
            return new WP_Error('invalid_attachment', __('The attached file cannot be found.'));
        }
    } else {
        $missing_sizes = wp_get_missing_image_subsizes($attachment_id);
        if (empty($missing_sizes)) {
            return $image_meta;
        }
        // This also updates the image meta.
        $image_meta = _wp_make_subsizes($missing_sizes, $image_file, $image_meta, $attachment_id);
    }
    /** This filter is documented in wp-admin/includes/image.php */
    $image_meta = apply_filters('wp_generate_attachment_metadata', $image_meta, $attachment_id, 'update');
    // Save the updated metadata.
    wp_update_attachment_metadata($attachment_id, $image_meta);
    return $image_meta;
}