WordPress.org

Make WordPress Core

Ticket #20702: 20702.diff

File 20702.diff, 4.7 KB (added by ryan, 2 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>';