media_handle_sideload

Advertisement

Summery Summery

Handles a side-loaded file in the same way as an uploaded file is handled by media_handle_upload().

Syntax Syntax

media_handle_sideload( array $file_array, int $post_id, string $desc = null, array $post_data = array() )

Parameters Parameters

$file_array

(Required) Array similar to a $_FILES upload array.

$post_id

(Required) The post ID the media is associated with.

$desc

(Optional) Description of the side-loaded file.

Default value: null

$post_data

(Optional) Post data to override.

Default value: array()

Return Return

(int|object) The ID of the attachment or a WP_Error on failure.

Source Source

File: wp-admin/includes/media.php

		wp_update_attachment_metadata( $attachment_id, wp_generate_attachment_metadata( $attachment_id, $file ) );
	}

	return $attachment_id;
}

/**
 * Handles a side-loaded file in the same way as an uploaded file is handled by media_handle_upload().
 *
 * @since 2.6.0
 * @since 5.3.0 The `$post_id` parameter was made optional.
 *
 * @param array  $file_array Array similar to a `$_FILES` upload array.
 * @param int    $post_id    Optional. The post ID the media is associated with.
 * @param string $desc       Optional. Description of the side-loaded file. Default null.
 * @param array  $post_data  Optional. Post data to override. Default empty array.
 * @return int|WP_Error The ID of the attachment or a WP_Error on failure.
 */
function media_handle_sideload( $file_array, $post_id = 0, $desc = null, $post_data = array() ) {
	$overrides = array( 'test_form' => false );

	$time = current_time( 'mysql' );
	$post = get_post( $post_id );

	if ( $post ) {
		if ( substr( $post->post_date, 0, 4 ) > 0 ) {
			$time = $post->post_date;
		}
	}

	$file = wp_handle_sideload( $file_array, $overrides, $time );

	if ( isset( $file['error'] ) ) {
		return new WP_Error( 'upload_error', $file['error'] );
	}

	$url     = $file['url'];
	$type    = $file['type'];
	$file    = $file['file'];
	$title   = preg_replace( '/\.[^.]+$/', '', wp_basename( $file ) );
	$content = '';

	// Use image exif/iptc data for title and caption defaults if possible.
	$image_meta = wp_read_image_metadata( $file );

	if ( $image_meta ) {
		if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) ) {
			$title = $image_meta['title'];
		}

		if ( trim( $image_meta['caption'] ) ) {
			$content = $image_meta['caption'];
		}
	}

	if ( isset( $desc ) ) {
		$title = $desc;
	}

Advertisement

Changelog Changelog

Changelog
Version Description
2.6.0 Introduced.

Advertisement

Leave a Reply