wp_validate_redirect()
Проверяет указанный URL на возможность использовать его для редиректа.
По умолчанию разрешаются только URL текущего сайта (внутренние URL адреса).
Если указанный URL не прошел проверку, то функция вернет значение второго параметра $default.
Что делает функция:
- Добавляет
http:
протокол для ссылок без протокола (//
) - Проверяет протокол, разрешены только
http
иhttps
. - Проверяет остальные компоненты URL.
- Сравнивает домен указанного URL с белым списком доменов на которые разрешен редирект. По умолчанию в белом списке находится только домен текущего сайта. Расширить белый список можно через фильтр allowed_redirect_hosts.
Чтобы очистить ссылку редиректа, используйте wp_sanitize_redirect()
Pluggable функция — эту функцию можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.
Замена функции (переопределение) — в must-use или обычном плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.
Хуки из функции
Возвращает
Строку
. Указанные URL адрес, если он прошел проверку или значение $default параметра.
Использование
wp_validate_redirect( $location, $default );
- $location(строка) (обязательный)
- URL, который нужно проверить.
- $default(строка)
- Дефолтный URL, который вернет функция, если Url из параметра $location не пройдет проверку.
По умолчанию: ''
Примеры
#1 Демонстрация работы функции
Предполагается что функция запускалась на сайте wp-kama.ru
.
echo wp_validate_redirect( 'http://foo.bar' ); //> '' echo wp_validate_redirect( 'http://foo.bar', 'http://my.site' ); //> http://my.site echo wp_validate_redirect( '//wp-kama.ru/foo' ); //> http://wp-kama.ru/foo echo wp_validate_redirect( 'https://wp-kama.ru/foo' ); //> https://wp-kama.ru/foo
Список изменений
С версии 2.8.1 | Введена. |