WordPress.org

Make WordPress Core

Ticket #21627: 21627.5.diff

File 21627.5.diff, 4.6 KB (added by peterwilsoncc, 5 years ago)

Pass settings using WP_Customize_Manager::customize_preview_settings

  • src/wp-admin/customize.php

    diff --git a/src/wp-admin/customize.php b/src/wp-admin/customize.php
    index c8bd6e3..8b870bb 100644
    a b do_action( 'customize_controls_print_scripts' ); 
    224224                'theme'    => array(
    225225                        'stylesheet' => $wp_customize->get_stylesheet(),
    226226                        'active'     => $wp_customize->is_theme_active(),
     227                        'bgElement'  => get_theme_support( 'custom-background', 'element-selector' ),
     228                        'bgClass'    => get_theme_support( 'custom-background', 'html-class' ),
    227229                ),
    228230                'url'      => array(
    229231                        'preview'       => esc_url_raw( $url ? $url : home_url( '/' ) ),
  • 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 8d78bdd..17976d0 100644
    a b final class WP_Customize_Manager { 
    594594         */
    595595        public function customize_preview_settings() {
    596596                $settings = array(
    597                         'values'  => array(),
    598                         'channel' => wp_unslash( $_POST['customize_messenger_channel'] ),
    599                         'activePanels' => array(),
     597                        'values'         => array(),
     598                        'channel'        => wp_unslash( $_POST['customize_messenger_channel'] ),
     599                        'activePanels'   => array(),
    600600                        'activeSections' => array(),
    601601                        'activeControls' => array(),
     602                        'theme'          => array(
     603                                'bgElement'      => get_theme_support( 'custom-background', 'element-selector' ),
     604                                'bgClass'        => get_theme_support( 'custom-background', 'html-class' ),
     605                               
     606                        ),
    602607                        'l10n' => array(
    603                                 'loading'  => __( 'Loading ...' ),
     608                                'loading'    => __( 'Loading ...' ),
    604609                        ),
    605610                );
    606611
  • 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 e58c8d6..69a33a3 100644
    a b  
    131131                });
    132132
    133133                api.when.apply( api, bg ).done( function( color, image, position_x, repeat, attachment ) {
    134                         var body = $(document.body),
     134                        var elementSelector = api.settings.theme.bgElement,
     135                                element = $(elementSelector),
    135136                                head = $('head'),
    136137                                style = $('#custom-background-css'),
    137138                                update;
    138139
    139140                        update = function() {
    140141                                var css = '';
     142                                var bgClass = api.settings.theme.bgClass;
     143                                var selector = elementSelector + '.' + bgClass;
    141144
    142145                                // The body will support custom backgrounds if either
    143146                                // the color or image are set.
    144147                                //
    145148                                // See get_body_class() in /wp-includes/post-template.php
    146                                 body.toggleClass( 'custom-background', !! ( color() || image() ) );
     149                                element.toggleClass( bgClass, !! ( color() || image() ) );
    147150
    148151                                if ( color() )
    149152                                        css += 'background-color: ' + color() + ';';
     
    157160
    158161                                // Refresh the stylesheet by removing and recreating it.
    159162                                style.remove();
    160                                 style = $('<style type="text/css" id="custom-background-css">body.custom-background { ' + css + ' }</style>').appendTo( head );
     163                                style = $('<style type="text/css" id="custom-background-css">' + selector + ' { ' + css + ' }</style>').appendTo( head );
    161164                        };
    162165
    163166                        $.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 2a6569f..a05583a 100644
    a b function get_body_class( $class = '' ) { 
    669669        }
    670670
    671671        if ( get_background_color() !== get_theme_support( 'custom-background', 'default-color' ) || get_background_image() )
    672                 $classes[] = 'custom-background';
     672                $classes[] = get_theme_support( 'custom-background', 'html-class' );
    673673
    674674        $page = $wp_query->get( 'page' );
    675675
  • src/wp-includes/theme.php

    diff --git a/src/wp-includes/theme.php b/src/wp-includes/theme.php
    index 1b372da..ee7de78 100644
    a b function _custom_background_cb() { 
    13561356
    13571357                $style .= $image . $repeat . $position . $attachment;
    13581358        }
     1359
     1360        $element    = get_theme_support( 'custom-background', 'element-selector' );
     1361        $html_class = get_theme_support( 'custom-background', 'html-class' );
     1362        $selector   = $element . '.' . $html_class;
    13591363?>
    13601364<style type="text/css" id="custom-background-css">
    1361 body.custom-background { <?php echo trim( $style ); ?> }
     1365<?php echo $selector; ?> { <?php echo trim( $style ); ?> }
    13621366</style>
    13631367<?php
    13641368}
    function add_theme_support( $feature ) { 
    16031607                                'wp-head-callback'       => '_custom_background_cb',
    16041608                                'admin-head-callback'    => '',
    16051609                                'admin-preview-callback' => '',
     1610                                'element-selector'       => 'body',
     1611                                'html-class'             => 'custom-background'
    16061612                        );
    16071613
    16081614                        $jit = isset( $args[0]['__jit'] );