class-wp-customize-header-image-setting.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. * A setting that is used to filter a value, but will not save the results.
  11. *
  12. * Results should be properly handled using another setting or callback.
  13. *
  14. * @since 3.4.0
  15. *
  16. * @see WP_Customize_Setting
  17. */
  18. final class WP_Customize_Header_Image_Setting extends WP_Customize_Setting {
  19. public $id = 'header_image_data';
  20. /**
  21. * @since 3.4.0
  22. *
  23. * @global Custom_Image_Header $custom_image_header
  24. *
  25. * @param $value
  26. */
  27. public function update( $value ) {
  28. global $custom_image_header;
  29. // If _custom_header_background_just_in_time() fails to initialize $custom_image_header when not is_admin().
  30. if ( empty( $custom_image_header ) ) {
  31. require_once( ABSPATH . 'wp-admin/custom-header.php' );
  32. $args = get_theme_support( 'custom-header' );
  33. $admin_head_callback = isset( $args[0]['admin-head-callback'] ) ? $args[0]['admin-head-callback'] : null;
  34. $admin_preview_callback = isset( $args[0]['admin-preview-callback'] ) ? $args[0]['admin-preview-callback'] : null;
  35. $custom_image_header = new Custom_Image_Header( $admin_head_callback, $admin_preview_callback );
  36. }
  37. // If the value doesn't exist (removed or random),
  38. // use the header_image value.
  39. if ( ! $value )
  40. $value = $this->manager->get_setting('header_image')->post_value();
  41. if ( is_array( $value ) && isset( $value['choice'] ) )
  42. $custom_image_header->set_header_image( $value['choice'] );
  43. else
  44. $custom_image_header->set_header_image( $value );
  45. }
  46. }