wppaste
WordPress

WP_Customize_Header_Image_Setting

Since
3.4.0
Source
wp-includes/customize/class-wp-customize-header-image-setting.php:30
A setting that is used to filter a value, but will not save the results.

Description

Results should be properly handled using another setting or callback.

Compatibility

WordPress
since 3.4.0
  • 6.7.10
  • 6.8.11
  • 6.9.10
  • 7.0.7
  • 7.1.3

Present in every tracked release (6.7.10 to 7.1.3).

Properties · 1

$idstringpublic
Unique string identifier for the setting.

Methods · 3

Source code

final class WP_Customize_Header_Image_Setting extends WP_Customize_Setting { 	/**	 * Unique string identifier for the setting.	 *	 * @since 3.4.0	 * @var string	 */	public $id = 'header_image_data'; 	/**	 * @since 3.4.0	 *	 * @global Custom_Image_Header $custom_image_header	 *	 * @param mixed $value The value to update.	 */	public function update( $value ) {		global $custom_image_header; 		// If _custom_header_background_just_in_time() fails to initialize $custom_image_header when not is_admin().		if ( empty( $custom_image_header ) ) {			require_once ABSPATH . 'wp-admin/includes/class-custom-image-header.php';			$args                   = get_theme_support( 'custom-header' );			$admin_head_callback    = isset( $args[0]['admin-head-callback'] ) ? $args[0]['admin-head-callback'] : null;			$admin_preview_callback = isset( $args[0]['admin-preview-callback'] ) ? $args[0]['admin-preview-callback'] : null;			$custom_image_header    = new Custom_Image_Header( $admin_head_callback, $admin_preview_callback );		} 		/*		 * If the value doesn't exist (removed or random),		 * use the header_image value.		 */		if ( ! $value ) {			$value = $this->manager->get_setting( 'header_image' )->post_value();		} 		if ( is_array( $value ) && isset( $value['choice'] ) ) {			$custom_image_header->set_header_image( $value['choice'] );		} else {			$custom_image_header->set_header_image( $value );		}	} 	/**	 * Sanitizes a header value.	 *	 * The value is expected to be one of the following:	 *	 * - An array of header image data, with the keys `attachment_id`, `url`, `thumbnail_url`, `timestamp`, `width`,	 *   `height`, `alt_text`, and `attachment_parent`, as supplied by {@see get_uploaded_header_images()}. Any other	 *   key is discarded.	 * - An array with a `choice` key, being the legacy format in which any of the other accepted values is nested.	 * - The string `remove-header`, `random-default-image`, or `random-uploaded-image`.	 * - A string corresponding to one of the keys for the array returned by {@see get_uploaded_header_images()}, or	 *   one of the keys for the array passed into {@see register_default_headers()}.	 *	 * @since 7.1.1	 *	 * @see WP_Customize_Header_Image_Setting::update()	 * @see Custom_Image_Header::set_header_image()	 *	 * @param mixed $value Value to sanitize.	 * @return array|string|WP_Error|null Sanitized value, or `null`/`WP_Error` if invalid. The array holds	 *                                    the header image data, or that data nested under a `choice` key,	 *                                    before the `customize_sanitize_header_image_data` filter, which	 *                                    may return anything, is applied to it.	 *	 * @phpstan-return array<mixed, mixed>|string|WP_Error|null	 */	public function sanitize( $value ) {		/*		 * The update() method unwraps the legacy `choice` format before handing the value off to		 * Custom_Image_Header::set_header_image(), so the nested value is what must be sanitized.		 */		if ( is_array( $value ) && isset( $value['choice'] ) ) {			$choice = $this->sanitize_choice( $value['choice'] );			if ( is_null( $choice ) || is_wp_error( $choice ) ) {				return $choice;			}

Changelog

Introduced in 3.4.0. Unchanged from 6.7.10 through 7.1.3.

  1. 6.7.10
  2. 6.8.11
  3. 6.9.10
  4. 7.0.7
  5. 7.1.3

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 6.7.10 tag, from src/wp-includes/customize/class-wp-customize-header-image-setting.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.