Функция подготавливает (очищает) переданную в неё строку как URL для редиректов, HTTP-запросов и запросов к базе данных.
Обратите внимание, что если вы хотите выводить URL на сайте или например использовать его в качестве HTML-атрибутов, то вам нужна другая функция – esc_url().
Как конкретно работает функция:
%20
.%0d
,%0a
,%0D
, %0A
(подробнее, что это за символы).;//
на ://
./wordpress/esc_url.html
, URL-параметрами ?myparam=yes
, якорем #primer
или php-файлом esc_url.php
, то автоматически будет добавлен протокол http://.esc_url_raw( $url, $protocols = null )
wp_allowed_protocols()
, которая возвращает массив:
Array ( [0] => http [1] => https [2] => ftp [3] => ftps [4] => mailto [5] => news [6] => irc [7] => irc6 [8] => ircs [9] => gopher [10] => nntp [11] => feed [12] => telnet [13] => mms [14] => rtsp [15] => sms [16] => svn [17] => tel [18] => fax [19] => xmpp [20] => webcal [21] => urn )
В самом начале описания этой функции, я упомянул, что её нельзя использовать при выводе URL в качестве HTML-атрибутов, а использовать для HTTP-запросов, редиректов и так далее. Что же это означает?
Это означает прежде всего, что подобное использование функции небезопасно!
// Не надо так! Используем esc_url()! echo '<a href="' . esc_url_raw( $url ) . '">WordPress</a>';
Другое дело – создание HTTP-запросов.
$url = 'http://wordpress.org'; $response = wp_remote_get( esc_url_raw( $url ) ); // всё супер
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.