WordPress.org

Make WordPress Core

Ticket #22030: 22030.2.diff

File 22030.2.diff, 1.9 KB (added by obenland, 5 years 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/**