set_url_scheme() – Sets the scheme for a URL.

You appear to be a bot. Output may be restricted

Description

Sets the scheme for a URL.

Usage

$string = set_url_scheme( $url, $scheme );

Parameters

$url
( string ) required – Absolute URL that includes a scheme
$scheme
( string|null ) optional – Optional. Scheme to give $url. Currently 'http', 'https', 'login', 'login_post', 'admin', 'relative', 'rest', 'rpc', or null. Default null.

Returns

string URL with chosen scheme.

Source

File name: wordpress/wp-includes/link-template.php
Lines:

1 to 37 of 37
function set_url_scheme( $url, $scheme = null ) {
  $orig_scheme = $scheme;

  if ( ! $scheme ) {
    $scheme = is_ssl() ? 'https' : 'http';
  } elseif ( 'admin' === $scheme || 'login' === $scheme || 'login_post' === $scheme || 'rpc' === $scheme ) {
    $scheme = is_ssl() || force_ssl_admin() ? 'https' : 'http';
  } elseif ( 'http' !== $scheme && 'https' !== $scheme && 'relative' !== $scheme ) {
    $scheme = is_ssl() ? 'https' : 'http';
  }

  $url = trim( $url );
  if ( substr( $url, 0, 2 ) === '//' ) {
    $url = 'http:' . $url;
  }

  if ( 'relative' === $scheme ) {
    $url = ltrim( preg_replace( '#^\w+://[^/]*#', '', $url ) );
    if ( '' !== $url && '/' === $url[0] ) {
      $url = '/' . ltrim( $url, "/ \t\n\r\0\x0B" );
    }
  } else {
    $url = preg_replace( '#^\w+://#', $scheme . '://', $url );
  }

  
/**
 * Filters the resulting URL after setting the scheme.
 *
 * @since 3.4.0
 *
 * @param string      $url         The complete URL including scheme and path.
 * @param string      $scheme      Scheme applied to the URL. One of 'http', 'https', or 'relative'.
 * @param string|null $orig_scheme Scheme requested for the URL. One of 'http', 'https', 'login',
 *                                 'login_post', 'admin', 'relative', 'rest', 'rpc', or null.
 */
  return apply_filters( 'set_url_scheme', $url, $scheme, $orig_scheme );
}
 

 View on GitHub View on Trac