wp/wp-includes/customize/class-wp-customize-header-image-setting.php
changeset 7 cf61fcea0001
child 9 177826044cd9
equal deleted inserted replaced
6:490d5cc509ed 7:cf61fcea0001
       
     1 <?php
       
     2 /**
       
     3  * Customize API: WP_Customize_Header_Image_Setting class
       
     4  *
       
     5  * @package WordPress
       
     6  * @subpackage Customize
       
     7  * @since 4.4.0
       
     8  */
       
     9 
       
    10 /**
       
    11  * A setting that is used to filter a value, but will not save the results.
       
    12  *
       
    13  * Results should be properly handled using another setting or callback.
       
    14  *
       
    15  * @since 3.4.0
       
    16  *
       
    17  * @see WP_Customize_Setting
       
    18  */
       
    19 final class WP_Customize_Header_Image_Setting extends WP_Customize_Setting {
       
    20 	public $id = 'header_image_data';
       
    21 
       
    22 	/**
       
    23 	 * @since 3.4.0
       
    24 	 *
       
    25 	 * @global Custom_Image_Header $custom_image_header
       
    26 	 *
       
    27 	 * @param $value
       
    28 	 */
       
    29 	public function update( $value ) {
       
    30 		global $custom_image_header;
       
    31 
       
    32 		// If _custom_header_background_just_in_time() fails to initialize $custom_image_header when not is_admin().
       
    33 		if ( empty( $custom_image_header ) ) {
       
    34 			require_once( ABSPATH . 'wp-admin/custom-header.php' );
       
    35 			$args = get_theme_support( 'custom-header' );
       
    36 			$admin_head_callback = isset( $args[0]['admin-head-callback'] ) ? $args[0]['admin-head-callback'] : null;
       
    37 			$admin_preview_callback = isset( $args[0]['admin-preview-callback'] ) ? $args[0]['admin-preview-callback'] : null;
       
    38 			$custom_image_header = new Custom_Image_Header( $admin_head_callback, $admin_preview_callback );
       
    39 		}
       
    40 
       
    41 		// If the value doesn't exist (removed or random),
       
    42 		// use the header_image value.
       
    43 		if ( ! $value )
       
    44 			$value = $this->manager->get_setting('header_image')->post_value();
       
    45 
       
    46 		if ( is_array( $value ) && isset( $value['choice'] ) )
       
    47 			$custom_image_header->set_header_image( $value['choice'] );
       
    48 		else
       
    49 			$custom_image_header->set_header_image( $value );
       
    50 	}
       
    51 }