Функция set_url_scheme()
предназначена для установки протокола (схемы) для заданного URL. Это может быть полезно, когда вы хотите убедиться, что ваш URL использует правильный протокол — HTTP или HTTPS. Функция позволяет также возвращать относительные ссылки.
Важно помнить, что функция не добавляет схему к «голым» URL (например, без протокола). Поэтому рекомендуется всегда указывать базовую схему, например, https://
, перед передачей URL в эту функцию.
set_url_scheme( string $url, string|null $scheme = null ): string
Параметры
- $url
- (string, обязательный) Абсолютный URL, который включает схему.
- $scheme
- (string|null, необязательный) Протокол для указания URL. Возможные значения:
http
,https
,login
,login_post
,admin
,relative
,rest
,rpc
, илиnull
. По умолчанию —null
.
- (string|null, необязательный) Протокол для указания URL. Возможные значения:
Возвращаемое значение
Возвращает строку с измененным URL под выбранную схему.
Пример 1: Изменение протокола в URL
В этом примере мы устанавливаем HTTPS протокол для заданного URL:
$url = 'http://example.com/some/path/';
$result = set_url_scheme($url, 'https');
echo $result; // Вывод: https://example.com/some/path/
Пример 2: Использование с is_ssl()
Если вы находитесь в SSL-среде и не указываете схему, функция автоматически подставит правильный протокол:
$url = 'http://example.org/page';
echo set_url_scheme($url);
// Если is_ssl() возвращает true, вывод: https://example.org/page
// Если is_ssl() возвращает false, вывод: http://example.org/page
Пример 3: Относительные ссылки
Вы можете указать схему relative
, чтобы получить относительный URL:
$url = 'https://example.com/another/path/';
$relative_url = set_url_scheme($url, 'relative');
echo $relative_url; // Вывод: /another/path/
Пример 4: Работа с URL без схемы
Если вы передадите URL без схемы, функция не изменит его:
echo set_url_scheme('example.com/path'); // Вывод: example.com/path
echo set_url_scheme('/path/to/resource', 'https'); // Вывод: /path/to/resource
Пример 5: Использование с разными схемами
$urls = [
set_url_scheme('http://example.com/page'), // Вывод: http://example.com/page
set_url_scheme('http://example.com/page', 'https'), // Вывод: https://example.com/page
set_url_scheme('http://example.com/page', 'relative'), // Вывод: /page
set_url_scheme('//example.com/page'), // Вывод: https://example.com/page (если is_ssl() true)
set_url_scheme('//example.com/page', 'http'), // Вывод: http://example.com/page
];
print_r($urls);
Заключение
Функция set_url_scheme()
в WordPress предоставляет удобный способ управления схемами URL, позволяя вам устанавливать правильный протокол для ссылок. Эта функция особенно полезна при работе с URL в условиях, когда вам необходимо убедиться, что протокол соответствует текущим условиям (например, работа с SSL). Правильное использование set_url_scheme()
поможет улучшить безопасность и корректность ваших ссылок на сайте.