WordPress.org

Make WordPress Core

Ticket #22030: 22030.2.diff

File 22030.2.diff, 1.9 KB (added by obenland, 8 months ago)
  • wp-admin/custom-background.php

     
    162162                if ( isset($_POST['background-color']) ) { 
    163163                        check_admin_referer('custom-background'); 
    164164                        $color = preg_replace('/[^0-9a-fA-F]/', '', $_POST['background-color']); 
    165                         if ( strlen($color) == 6 || strlen($color) == 3 ) 
    166                                 set_theme_mod('background_color', $color); 
     165                        if ( ( strlen( $color ) == 6 || strlen( $color ) == 3 ) && get_theme_support( 'custom-background', 'default-color' ) != $color ) 
     166                                set_theme_mod( 'background_color', $color ); 
    167167                        else 
    168                                 set_theme_mod('background_color', ''); 
     168                                remove_theme_mod( 'background_color' ); 
    169169                } 
    170170 
    171171                $this->updated = true; 
  • wp-includes/class-wp-customize-manager.php

     
    777777                        'default'        => get_theme_support( 'custom-background', 'default-color' ), 
    778778                        'theme_supports' => 'custom-background', 
    779779 
    780                         'sanitize_callback'    => 'sanitize_hex_color_no_hash', 
     780                        'sanitize_callback'    => array( $this, '_sanitize_background_color' ), 
    781781                        'sanitize_js_callback' => 'maybe_hash_hex_color', 
    782782                ) ); 
    783783 
     
    992992 
    993993                return $color; 
    994994        } 
     995 
     996        /** 
     997         * Callback for validating the background_color value. 
     998         * 
     999         * Returns an empty string if hex color is the theme default, 
     1000         * oherwise uses sanitize_hex_color_no_hash(). 
     1001         * 
     1002         * @since 3.7.0 
     1003         * 
     1004         * @param string $color 
     1005         * @return string 
     1006         */ 
     1007        public function _sanitize_background_color( $color ) { 
     1008                if ( get_theme_support( 'custom-background', 'default-color' ) == ltrim( $color, '#' ) ) 
     1009                        return ''; 
     1010 
     1011                return sanitize_hex_color_no_hash( $color ); 
     1012        } 
    9951013}; 
    9961014 
    9971015/**