WordPress.org

Make WordPress Core

Ticket #21627: 21627.6.diff

File 21627.6.diff, 4.2 KB (added by peterwilsoncc, 4 years ago)
  • src/wp-includes/class-wp-customize-manager.php

    diff --git a/src/wp-includes/class-wp-customize-manager.php b/src/wp-includes/class-wp-customize-manager.php
    index 00c54c7..bcf6b85 100644
    a b final class WP_Customize_Manager { 
    14861486                        'theme'    => array(
    14871487                                'stylesheet' => $this->get_stylesheet(),
    14881488                                'active'     => $this->is_theme_active(),
     1489                                'bgElement'  => get_theme_support( 'custom-background', 'background-element' ),
     1490                                'bgClass'    => get_theme_support( 'custom-background', 'background-class' ),
     1491                                'bgSelector' => get_theme_support( 'custom-background', 'background-selector' ),
    14891492                        ),
    14901493                        'url'      => array(
    14911494                                'preview'       => esc_url_raw( $this->get_preview_url() ),
    final class WP_Customize_Manager { 
    15111514                        'documentTitleTmpl' => $this->get_document_title_template(),
    15121515                );
    15131516
     1517                $settings['theme']['bgSelector'] = sprintf( $settings['theme']['bgSelector'], $settings['theme']['bgElement'], $settings['theme']['bgClass'] );
     1518
    15141519                // Prepare Customize Section objects to pass to JavaScript.
    15151520                foreach ( $this->sections() as $id => $section ) {
    15161521                        if ( $section->check_capabilities() ) {
  • src/wp-includes/js/customize-preview.js

    diff --git a/src/wp-includes/js/customize-preview.js b/src/wp-includes/js/customize-preview.js
    index 29341d7..f4af3c1 100644
    a b  
    137137                });
    138138
    139139                api.when.apply( api, bg ).done( function( color, image, position_x, repeat, attachment ) {
    140                         var body = $(document.body),
     140                        var element = $(window.parent._wpCustomizeSettings.theme.bgElement),
    141141                                head = $('head'),
    142142                                style = $('#custom-background-css'),
    143143                                update;
    144144
    145145                        update = function() {
    146146                                var css = '';
     147                                var selector = window.parent._wpCustomizeSettings.theme.bgSelector;
    147148
    148149                                // The body will support custom backgrounds if either
    149150                                // the color or image are set.
    150151                                //
    151152                                // See get_body_class() in /wp-includes/post-template.php
    152                                 body.toggleClass( 'custom-background', !! ( color() || image() ) );
     153                                element.toggleClass( 'custom-background', !! ( color() || image() ) );
    153154
    154155                                if ( color() )
    155156                                        css += 'background-color: ' + color() + ';';
     
    163164
    164165                                // Refresh the stylesheet by removing and recreating it.
    165166                                style.remove();
    166                                 style = $('<style type="text/css" id="custom-background-css">body.custom-background { ' + css + ' }</style>').appendTo( head );
     167                                style = $('<style type="text/css" id="custom-background-css">' + selector + ' { ' + css + ' }</style>').appendTo( head );
    167168                        };
    168169
    169170                        $.each( arguments, function() {
  • src/wp-includes/post-template.php

    diff --git a/src/wp-includes/post-template.php b/src/wp-includes/post-template.php
    index b296464..eae6a0b 100644
    a b function get_body_class( $class = '' ) { 
    678678        }
    679679
    680680        if ( get_background_color() !== get_theme_support( 'custom-background', 'default-color' ) || get_background_image() )
    681                 $classes[] = 'custom-background';
     681                $classes[] = get_theme_support( 'custom-background', 'background-class' );
    682682
    683683        $page = $wp_query->get( 'page' );
    684684
  • src/wp-includes/theme.php

    diff --git a/src/wp-includes/theme.php b/src/wp-includes/theme.php
    index 130b90e..33458cc 100644
    a b function _custom_background_cb() { 
    12931293
    12941294                $style .= $image . $repeat . $position . $attachment;
    12951295        }
     1296
     1297        $element    = get_theme_support( 'custom-background', 'background-element' );
     1298        $class      = get_theme_support( 'custom-background', 'background-class' );
     1299        $selector   = get_theme_support( 'custom-background', 'background-selector' );
     1300
     1301
     1302        $selector = sprintf( $selector, $element, $class );
    12961303?>
    12971304<style type="text/css" id="custom-background-css">
    1298 body.custom-background { <?php echo trim( $style ); ?> }
     1305<?php echo $selector; ?> { <?php echo trim( $style ); ?> }
    12991306</style>
    13001307<?php
    13011308}
    function add_theme_support( $feature ) { 
    15531560                                'wp-head-callback'       => '_custom_background_cb',
    15541561                                'admin-head-callback'    => '',
    15551562                                'admin-preview-callback' => '',
     1563                                'background-element'     => 'body',
     1564                                'background-class'       => 'custom-background',
     1565                                'background-selector'    => '%1$s.%2$s',
    15561566                        );
    15571567
    15581568                        $jit = isset( $args[0]['__jit'] );