On this page
Custom_Background::handle_upload()
Handles an Image upload for the background image.
Source
File: wp-admin/includes/class-custom-background.php. View all references
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 action is documented in wp-admin/includes/class-custom-image-header.php */
do_action( 'wp_create_file_in_uploads', $file, $id ); // For replication.
$this->updated = true;
}
Hooks
- do_action( 'wp_create_file_in_uploads',
string $file ,int $attachment_id ) -
Fires after the header image is set or an error is returned.
Related
Uses
| Uses | Description |
|---|---|
| wp_generate_attachment_metadata() wp-admin/includes/image.php | Generates attachment meta data and create image sub-sizes for images. |
| wp_handle_upload() wp-admin/includes/file.php | Wrapper for _wp_handle_upload() . |
| set_theme_mod() wp-includes/theme.php | Updates theme modification value for the active theme. |
| check_admin_referer() wp-includes/pluggable.php | Ensures intent by verifying that a user was referred from another admin page with the correct security nonce. |
| sanitize_url() wp-includes/formatting.php | Sanitizes a URL for database or redirect usage. |
| wp_check_filetype_and_ext() wp-includes/functions.php | Attempts to determine the real file type of a file. |
| wp_get_attachment_image_src() wp-includes/media.php | Retrieves an image to represent an attachment. |
| wp_insert_attachment() wp-includes/post.php | Inserts an attachment. |
| wp_update_attachment_metadata() wp-includes/post.php | Updates metadata for an attachment. |
| wp_match_mime_types() wp-includes/post.php | Checks a MIME-Type against a list. |
| update_post_meta() wp-includes/post.php | Updates a post meta field based on the given post ID. |
| __() wp-includes/l10n.php | Retrieves the translation of $text. |
| wp_basename() wp-includes/formatting.php | i18n-friendly version of basename(). |
| wp_die() wp-includes/functions.php | Kills WordPress execution and displays HTML page with an error message. |
| do_action() wp-includes/plugin.php | Calls the callback functions that have been added to an action hook. |
| get_option() wp-includes/option.php | Retrieves an option value based on an option name. |
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/custom_background/handle_upload