WordPress.org

Make WordPress Core

Ticket #20759: 20759.patch

File 20759.patch, 10.0 KB (added by johnbillion, 6 years ago)
  • wp-admin/includes/meta-boxes.php

     
    4242        $preview_button = __( 'Preview Changes' );
    4343} else {
    4444        $preview_link = get_permalink( $post->ID );
    45         if ( is_ssl() )
    46                 $preview_link = str_replace( 'http://', 'https://', $preview_link );
     45        $preview_link = set_url_scheme( $preview_link );
    4746        $preview_link = esc_url( apply_filters( 'preview_post_link', add_query_arg( 'preview', 'true', $preview_link ) ) );
    4847        $preview_button = __( 'Preview' );
    4948}
  • wp-admin/includes/plugin.php

     
    902902
    903903        if ( empty($icon_url) )
    904904                $icon_url = esc_url( admin_url( 'images/generic.png' ) );
    905         elseif ( is_ssl() && 0 === strpos($icon_url, 'http://') )
    906                 $icon_url = 'https://' . substr($icon_url, 7);
     905        elseif ( 0 === strpos($icon_url, 'http') )
     906                $icon_url = set_url_scheme( $icon_url );
    907907
    908908        $new_menu = array( $menu_title, $capability, $menu_slug, $page_title, 'menu-top ' . $hookname, $hookname, $icon_url );
    909909
  • wp-includes/class-wp-editor.php

     
    209209
    210210                                                foreach ( $mce_external_plugins as $name => $url ) {
    211211
    212                                                         if ( is_ssl() ) $url = str_replace('http://', 'https://', $url);
     212                                                        $url = set_url_scheme( $url );
    213213
    214214                                                        $plugins[] = '-' . $name;
    215215
  • wp-includes/functions.php

     
    26492649function url_is_accessable_via_ssl($url)
    26502650{
    26512651        if (in_array('curl', get_loaded_extensions())) {
    2652                 $ssl = preg_replace( '/^http:\/\//', 'https://',  $url );
     2652                $ssl = set_url_scheme( $url, 'https' );
    26532653
    26542654                $ch = curl_init();
    26552655                curl_setopt($ch, CURLOPT_URL, $ssl);
  • wp-includes/link-template.php

     
    18381838 * @uses get_home_url()
    18391839 *
    18401840 * @param  string $path   (optional) Path relative to the home url.
    1841  * @param  string $scheme (optional) Scheme to give the home url context. Currently 'http', 'https', or 'relative'.
     1841 * @param  string $scheme (optional) Scheme to give the home url context. See set_url_scheme().
    18421842 * @return string Home url link with optional path appended.
    18431843*/
    18441844function home_url( $path = '', $scheme = null ) {
     
    18571857 *
    18581858 * @param  int $blog_id   (optional) Blog ID. Defaults to current blog.
    18591859 * @param  string $path   (optional) Path relative to the home url.
    1860  * @param  string $scheme (optional) Scheme to give the home url context. Currently 'http', 'https', or 'relative'.
     1860 * @param  string $scheme (optional) Scheme to give the home url context. See set_url_scheme().
    18611861 * @return string Home url link with optional path appended.
    18621862*/
    18631863function get_home_url( $blog_id = null, $path = '', $scheme = null ) {
    1864         $orig_scheme = $scheme;
    18651864
    1866         if ( !in_array( $scheme, array( 'http', 'https', 'relative' ) ) )
    1867                 $scheme = is_ssl() && !is_admin() ? 'https' : 'http';
    1868 
    18691865        if ( empty( $blog_id ) || !is_multisite() )
    18701866                $url = get_option( 'home' );
    18711867        else
    18721868                $url = get_blog_option( $blog_id, 'home' );
    18731869
    1874         if ( 'relative' == $scheme )
    1875                 $url = preg_replace( '#^.+://[^/]*#', '', $url );
    1876         elseif ( 'http' != $scheme )
    1877                 $url = str_replace( 'http://', "$scheme://", $url );
     1870        $url = set_url_scheme( $url, $scheme );
    18781871
    18791872        if ( !empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
    18801873                $url .= '/' . ltrim( $path, '/' );
    18811874
    1882         return apply_filters( 'home_url', $url, $path, $orig_scheme, $blog_id );
     1875        return apply_filters( 'home_url', $url, $path, $scheme, $blog_id );
    18831876}
    18841877
    18851878/**
     
    18951888 * @uses get_site_url()
    18961889 *
    18971890 * @param string $path Optional. Path relative to the site url.
    1898  * @param string $scheme Optional. Scheme to give the site url context. Currently 'http', 'https', 'login', 'login_post', 'admin', or 'relative'.
     1891 * @param string $scheme Optional. Scheme to give the site url context. See set_url_scheme().
    18991892 * @return string Site url link with optional path appended.
    19001893*/
    19011894function site_url( $path = '', $scheme = null ) {
     
    19141907 *
    19151908 * @param int $blog_id (optional) Blog ID. Defaults to current blog.
    19161909 * @param string $path Optional. Path relative to the site url.
    1917  * @param string $scheme Optional. Scheme to give the site url context. Currently 'http', 'https', 'login', 'login_post', 'admin', or 'relative'.
     1910 * @param string $scheme Optional. Scheme to give the site url context. See set_url_scheme().
    19181911 * @return string Site url link with optional path appended.
    19191912*/
    19201913function get_site_url( $blog_id = null, $path = '', $scheme = null ) {
    1921         // should the list of allowed schemes be maintained elsewhere?
    1922         $orig_scheme = $scheme;
    1923         if ( !in_array( $scheme, array( 'http', 'https', 'relative' ) ) ) {
    1924                 if ( ( 'login_post' == $scheme || 'rpc' == $scheme ) && ( force_ssl_login() || force_ssl_admin() ) )
    1925                         $scheme = 'https';
    1926                 elseif ( ( 'login' == $scheme ) && force_ssl_admin() )
    1927                         $scheme = 'https';
    1928                 elseif ( ( 'admin' == $scheme ) && force_ssl_admin() )
    1929                         $scheme = 'https';
    1930                 else
    1931                         $scheme = ( is_ssl() ? 'https' : 'http' );
    1932         }
    19331914
    19341915        if ( empty( $blog_id ) || !is_multisite() )
    19351916                $url = get_option( 'siteurl' );
    19361917        else
    19371918                $url = get_blog_option( $blog_id, 'siteurl' );
    19381919
    1939         if ( 'relative' == $scheme )
    1940                 $url = preg_replace( '#^.+://[^/]*#', '', $url );
    1941         elseif ( 'http' != $scheme )
    1942                 $url = str_replace( 'http://', "{$scheme}://", $url );
     1920        $url = set_url_scheme( $url, $scheme );
    19431921
    19441922        if ( !empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
    19451923                $url .= '/' . ltrim( $path, '/' );
    19461924
    1947         return apply_filters( 'site_url', $url, $path, $orig_scheme, $blog_id );
     1925        return apply_filters( 'site_url', $url, $path, $scheme, $blog_id );
    19481926}
    19491927
    19501928/**
     
    20101988*/
    20111989function content_url($path = '') {
    20121990        $url = WP_CONTENT_URL;
    2013         if ( 0 === strpos($url, 'http') && is_ssl() )
    2014                 $url = str_replace( 'http://', 'https://', $url );
     1991        if ( 0 === strpos($url, 'http') )
     1992                $url = set_scheme_url( $url );
    20151993
    20161994        if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
    20171995                $url .= '/' . ltrim($path, '/');
     
    20432021        else
    20442022                $url = WP_PLUGIN_URL;
    20452023
    2046         if ( 0 === strpos($url, 'http') && is_ssl() )
    2047                 $url = str_replace( 'http://', 'https://', $url );
     2024        if ( 0 === strpos($url, 'http') )
     2025                $url = set_url_scheme( $url );
    20482026
    20492027        if ( !empty($plugin) && is_string($plugin) ) {
    20502028                $folder = dirname(plugin_basename($plugin));
     
    20692047 * @since 3.0.0
    20702048 *
    20712049 * @param string $path Optional. Path relative to the site url.
    2072  * @param string $scheme Optional. Scheme to give the site url context. Currently 'http', 'https', 'login', 'login_post', 'admin', or 'relative'.
     2050 * @param string $scheme Optional. Scheme to give the site url context. See set_url_scheme().
    20732051 * @return string Site url link with optional path appended.
    20742052*/
    20752053function network_site_url( $path = '', $scheme = null ) {
     
    20782056        if ( !is_multisite() )
    20792057                return site_url($path, $scheme);
    20802058
    2081         $orig_scheme = $scheme;
    2082         if ( !in_array( $scheme, array( 'http', 'https', 'relative' ) ) ) {
    2083                 if ( ( 'login_post' == $scheme || 'rpc' == $scheme ) && ( force_ssl_login() || force_ssl_admin() ) )
    2084                         $scheme = 'https';
    2085                 elseif ( ('login' == $scheme) && ( force_ssl_admin() ) )
    2086                         $scheme = 'https';
    2087                 elseif ( ('admin' == $scheme) && force_ssl_admin() )
    2088                         $scheme = 'https';
    2089                 else
    2090                         $scheme = ( is_ssl() ? 'https' : 'http' );
    2091         }
    2092 
    20932059        if ( 'relative' == $scheme )
    20942060                $url = $current_site->path;
    20952061        else
    2096                 $url = $scheme . '://' . $current_site->domain . $current_site->path;
     2062                $url = set_url_scheme( 'http://' . $current_site->domain . $current_site->path, $scheme );
    20972063
    20982064        if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
    20992065                $url .= ltrim($path, '/');
    21002066
    2101         return apply_filters('network_site_url', $url, $path, $orig_scheme);
     2067        return apply_filters('network_site_url', $url, $path, $scheme);
    21022068}
    21032069
    21042070/**
     
    21122078 * @since 3.0.0
    21132079 *
    21142080 * @param  string $path   (optional) Path relative to the home url.
    2115  * @param  string $scheme (optional) Scheme to give the home url context. Currently 'http', 'https', or 'relative'.
     2081 * @param  string $scheme (optional) Scheme to give the home url context. See set_url_scheme().
    21162082 * @return string Home url link with optional path appended.
    21172083*/
    21182084function network_home_url( $path = '', $scheme = null ) {
     
    21212087        if ( !is_multisite() )
    21222088                return home_url($path, $scheme);
    21232089
    2124         $orig_scheme = $scheme;
    2125 
    2126         if ( !in_array( $scheme, array( 'http', 'https', 'relative' ) ) )
    2127                 $scheme = is_ssl() && !is_admin() ? 'https' : 'http';
    2128 
    21292090        if ( 'relative' == $scheme )
    21302091                $url = $current_site->path;
    21312092        else
    2132                 $url = $scheme . '://' . $current_site->domain . $current_site->path;
     2093                $url = set_url_scheme( 'http://' . $current_site->domain . $current_site->path, $scheme );
    21332094
    21342095        if ( !empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
    21352096                $url .= ltrim( $path, '/' );
    21362097
    2137         return apply_filters( 'network_home_url', $url, $path, $orig_scheme);
     2098        return apply_filters( 'network_home_url', $url, $path, $scheme);
    21382099}
    21392100
    21402101/**
  • wp-includes/theme.php

     
    869869        if ( is_random_header_image() )
    870870                $url = get_random_header_image();
    871871
    872         if ( is_ssl() )
    873                 $url = str_replace( 'http://', 'https://', $url );
    874         else
    875                 $url = str_replace( 'https://', 'http://', $url );
     872        $url = set_url_scheme( $url );
    876873
    877874        return esc_url_raw( $url );
    878875}