WordPress.org

Make WordPress Core

Ticket #20702: 20702.diff

File 20702.diff, 4.7 KB (added by ryan, 6 years ago)
  • wp-includes/class-wp-customize-control.php

     
    343343                                                <?php if ( empty( $src ) ): ?>
    344344                                                        <img style="display:none;" />
    345345                                                <?php else: ?>
    346                                                         <img src="<?php echo esc_url( $src ); ?>" />
     346                                                        <img src="<?php echo esc_url( set_url_scheme( $src ) ); ?>" />
    347347                                                <?php endif; ?>
    348348                                                <div class="dropdown-status"></div>
    349349                                        </div>
     
    426426
    427427                foreach ( $headers as $header ) : ?>
    428428                        <a href="#" class="thumbnail" data-customize-image-value="<?php echo esc_url( $header['url'] ); ?>">
    429                                 <img src="<?php echo esc_url( $header['thumbnail_url'] ); ?>" />
     429                                <img src="<?php echo esc_url( set_url_scheme( $header['thumbnail_url'] ) ); ?>" />
    430430                        </a>
    431431                <?php endforeach;
    432432        }
     
    437437
    438438                foreach ( $custom_image_header->default_headers as $header ) : ?>
    439439                        <a href="#" class="thumbnail" data-customize-image-value="<?php echo esc_url( $header['url'] ); ?>">
    440                                 <img src="<?php echo esc_url( $header['thumbnail_url'] ); ?>" />
     440                                <img src="<?php echo esc_url( set_url_scheme( $header['thumbnail_url'] ) ); ?>" />
    441441                        </a>
    442442                <?php endforeach;
    443443        }
  • wp-includes/customize-controls.php

     
    9292
    9393        do_action( 'customize_controls_print_footer_scripts' );
    9494
     95        // If the frontend and the admin are served from the same domain, load the
     96        // preview over ssl if the customizer is being loaded over ssl. This avoids
     97        // insecure content warnings. This is not attempted if the admin and frontend
     98        // are on different domains to avoid the case where the frontend doesn't have
     99        // ssl certs. Domain mapping plugins can force ssl in these conditions using
     100        // the customizer_preview_link filter.
     101        $admin_origin = parse_url( admin_url() );
     102        $home_origin = parse_url( home_url() );
     103        $scheme = null;
     104        if ( is_ssl() && ( $admin_origin[ 'host' ] == $home_origin[ 'host' ] ) )
     105                $scheme = 'https';
     106
     107        $preview_url = apply_filters( 'customizer_preview_link',  home_url( '/', $scheme ) );
     108
    95109        $settings = array(
    96110                'theme'    => array(
    97111                        'stylesheet' => $this->get_stylesheet(),
    98112                        'active'     => $this->is_current_theme_active(),
    99113                ),
    100114                'url'      => array(
    101                         'preview'  => esc_url( home_url( '/' ) ),
     115                        'preview'  => esc_url( $preview_url ),
    102116                        'parent'   => esc_url( admin_url() ),
    103117                        'ajax'     => esc_url( admin_url( 'admin-ajax.php', 'relative' ) ),
    104118                ),
  • wp-includes/link-template.php

     
    21982198}
    21992199
    22002200/**
     2201 * Set the scheme for a URL
     2202 *
     2203 * @since 3.4.0
     2204 *
     2205 * @param string $url Absolute url that includes a scheme
     2206 * @param string $scheme Optional. Scheme to give $url. Currently 'http', 'https', 'login', 'login_post', 'admin', or 'relative'.
     2207 * @return string $url URL with chosen scheme.
     2208 */
     2209function set_url_scheme( $url, $scheme = null ) {
     2210        $orig_scheme = $scheme;
     2211        if ( ! in_array( $scheme, array( 'http', 'https', 'relative' ) ) ) {
     2212                if ( ( 'login_post' == $scheme || 'rpc' == $scheme ) && ( force_ssl_login() || force_ssl_admin() ) )
     2213                        $scheme = 'https';
     2214                elseif ( ( 'login' == $scheme ) && force_ssl_admin() )
     2215                        $scheme = 'https';
     2216                elseif ( ( 'admin' == $scheme ) && force_ssl_admin() )
     2217                        $scheme = 'https';
     2218                else
     2219                        $scheme = ( is_ssl() ? 'https' : 'http' );
     2220        }
     2221
     2222        if ( 'relative' == $scheme )
     2223                $url = preg_replace( '#^.+://[^/]*#', '', $url );
     2224        else
     2225                $url = preg_replace( '#^.+://#', $scheme . '://', $url );
     2226
     2227        return apply_filters('set_url_scheme', $url, $scheme);
     2228}
     2229
     2230/**
    22012231 * Get the URL to the user's dashboard.
    22022232 *
    22032233 * If a user does not belong to any site, the global user dashboard is used. If the user belongs to the current site,
  • wp-admin/custom-header.php

     
    333333                        $width = '';
    334334                        if ( !empty( $header['attachment_id'] ) )
    335335                                $width = ' width="230"';
    336                         echo '<img src="' . $header_thumbnail . '" alt="' . esc_attr( $header_desc ) .'" title="' . esc_attr( $header_desc ) . '"' . $width . ' /></label>';
     336                        echo '<img src="' . set_url_scheme( $header_thumbnail ) . '" alt="' . esc_attr( $header_desc ) .'" title="' . esc_attr( $header_desc ) . '"' . $width . ' /></label>';
    337337                        echo '</div>';
    338338                }
    339339                echo '<div class="clear"></div></div>';