Custom_Background::handle_upload()

In this article

Handles an Image upload for the background image.

Source

public function handle_upload() {	if ( empty( $_FILES ) ) {	return;	}	check_admin_referer( 'custom-background-upload', '_wpnonce-custom-background-upload' );	$overrides = array( 'test_form' => false );	$uploaded_file = $_FILES['import'];	$wp_filetype = wp_check_filetype_and_ext( $uploaded_file['tmp_name'], $uploaded_file['name'] );	if ( ! wp_match_mime_types( 'image', $wp_filetype['type'] ) ) {	wp_die( __( 'The uploaded file is not a valid image. Please try again.' ) );	}	$file = wp_handle_upload( $uploaded_file, $overrides );	if ( isset( $file['error'] ) ) {	wp_die( $file['error'] );	}	$url = $file['url'];	$type = $file['type'];	$file = $file['file'];	$filename = wp_basename( $file );	// Construct the attachment array.	$attachment = array(	'post_title' => $filename,	'post_content' => $url,	'post_mime_type' => $type,	'guid' => $url,	'context' => 'custom-background',	);	// Save the data.	$id = wp_insert_attachment( $attachment, $file );	// Add the metadata.	wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );	update_post_meta( $id, '_wp_attachment_is_custom_background', get_option( 'stylesheet' ) );	set_theme_mod( 'background_image', sanitize_url( $url ) );	$thumbnail = wp_get_attachment_image_src( $id, 'thumbnail' );	set_theme_mod( 'background_image_thumb', sanitize_url( $thumbnail[0] ) );	/** This filter is documented in wp-admin/includes/class-custom-image-header.php */	$file = apply_filters( 'wp_create_file_in_uploads', $file, $id ); // For replication.	$this->updated = true; } 

Hooks

apply_filters( ‘wp_create_file_in_uploads’, string $file, int $attachment_id )

Filters the attachment file path after the custom header or background image is set.

Changelog

VersionDescription
3.0.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.