set_url_scheme()
Устанавливает текущий протокол сайта для указного URL (ссылки). Если в $scheme указать relative, то получит относительную ссылку.
Функция НЕ добавляет схему к пустому URL. Если указать так: example.org/what/ever
, то функция не поймет что это URL и не обработает такую строку (вернет её как есть). По этой причине у исходного URL всегда должна быть базовая схема, например, https://
.
$url = 'example.org/what/ever/'; echo set_url_scheme( $url, 'https' ); // example.org/what/ever
Работает на основе: is_ssl(), force_ssl_admin()
Основа для: get_home_url()
1 раз — 0.000017 сек (очень быстро) | 50000 раз — 0.07 сек (скорость света) | PHP 7.0.2, WP 4.4.1
Хуки из функции
Возвращает
Строку
. Измененный URL под выбранную схему.
Использование
set_url_scheme( $url, $scheme );
- $url(строка) (обязательный)
- URL содержащий протокол http(s).
- $scheme(строка/null)
Схема в соответствии с которой нужно изменять URL. Может быть:
http https relative — вернет относительный URL (без домена). login — протокол страницы авторизации login_post admin rest rpc null — текущий протокол сайта is_ssl()
По умолчанию: null (текущий протокол сайта is_ssl())
Примеры
#1 Демонстрация изменения протокола в URL.
Код выполнялся на сайте с HTTPS протоколом по дефолту:
$res = [ set_url_scheme( 'http://example.com/foo' ), //> https://example.com/foo или http://example.com/foo set_url_scheme( 'http://example.com/foo', 'http' ), //> http://example.com/foo set_url_scheme( 'http://example.com/foo', 'https' ), //> https://example.com/foo set_url_scheme( 'http://example.com/foo', 'relative' ), //> /foo set_url_scheme( '//example.com/foo' ), //> https://example.com/foo или http://example.com/foo set_url_scheme( '//example.com/foo', 'http' ), //> http://example.com/foo set_url_scheme( '//example.com/foo', 'https' ), //> https://example.com/foo set_url_scheme( '//example.com/foo', 'relative' ), //> /foo // Не работает если это не URL set_url_scheme( '/foo', 'https' ), //> /foo set_url_scheme( 'example.com/foo', 'https' ), //> example.com/foo // Исключения set_url_scheme( '///example.org/foo', 'https' ), //> https:///example.org/foo ]; print_r( $res );
Список изменений
С версии 3.4.0 | Введена. |
С версии 4.4.0 | The 'rest' scheme was added. |