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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. /**
  20. * Unique string identifier for the setting.
  21. *
  22. * @since 3.4.0
  23. * @var string
  24. */
  25. public $id = 'header_image_data';
  26. /**
  27. * @since 3.4.0
  28. *
  29. * @global Custom_Image_Header $custom_image_header
  30. *
  31. * @param mixed $value The value to update.
  32. */
  33. public function update( $value ) {
  34. global $custom_image_header;
  35. // If _custom_header_background_just_in_time() fails to initialize $custom_image_header when not is_admin().
  36. if ( empty( $custom_image_header ) ) {
  37. require_once ABSPATH . 'wp-admin/includes/class-custom-image-header.php';
  38. $args = get_theme_support( 'custom-header' );
  39. $admin_head_callback = isset( $args[0]['admin-head-callback'] ) ? $args[0]['admin-head-callback'] : null;
  40. $admin_preview_callback = isset( $args[0]['admin-preview-callback'] ) ? $args[0]['admin-preview-callback'] : null;
  41. $custom_image_header = new Custom_Image_Header( $admin_head_callback, $admin_preview_callback );
  42. }
  43. // If the value doesn't exist (removed or random),
  44. // use the header_image value.
  45. if ( ! $value ) {
  46. $value = $this->manager->get_setting( 'header_image' )->post_value();
  47. }
  48. if ( is_array( $value ) && isset( $value['choice'] ) ) {
  49. $custom_image_header->set_header_image( $value['choice'] );
  50. } else {
  51. $custom_image_header->set_header_image( $value );
  52. }
  53. }
  54. }