функция
since 3.4.0
set_url_scheme()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
set_url_scheme( string $url, string|null $scheme = null ): string
Описание
Задаёт схему для URL.
Параметры
$url
string
обязательный
Абсолютный URL, включающий схему
$scheme
string|null
необязательный
= null
Схема, задаваемая для $url. В настоящее время 'http', 'https', 'login', 'login_post', 'admin', 'relative', 'rest', 'rpc' или null.
Возвращаемое значение
string
Исходный код
wp-includes/link-template.php:3930
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 ( str_starts_with( $url, '//' ) ) {
$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 );
}
История изменений
| Версия | Описание |
|---|---|
| 4.4.0 | The 'rest' scheme was added. |
| 3.4.0 | Introduced. |

