Как лучше всего определить реферера в WordPress?
Я ищу специфичный для WordPress способ определить любого реферера. Есть идеи? Я знаю, как это сделать на чистом PHP, но хочу узнать, есть ли специальная WP-функция для этого?
РЕДАКТИРОВАНО: вот что я пытаюсь протестировать =>
$referer = wp_get_referer();
// Проверяем, содержит ли реферер ссылку на wordpress.org
if (strpos($referer, 'http://wordpress.org') !== false) echo 'вы пришли с wordpress.org';
Лучший способ проверить реферер зависит от того, что именно вы пытаетесь сделать. Вы можете использовать wp_get_referer() или wp_get_original_referer(), но если вы хотите проверить реферер из соображений безопасности, вам определенно следует использовать другие функции, такие как check_admin_referer(), check_ajax_referer(), wp_referer_field() или другие функции WordPress, связанные с Nonces.
Вы можете получить его с помощью функций wp_get_referer() и wp_get_original_referer().
Хорошо, спасибо, ожидал больше деталей (что-то вроде вики) -> но такова эта функция
JMau
Вы можете получить больше информации о ней из страниц кодекса, которые я привязал к названиям функций.
Vinod Dalvi
Разница между двумя функциями заключается в том, что если страница отправляет форму на саму себя, wp_get_referer() вернет false, а wp_get_original_referer() вернет исходный реферер. Однако обратите внимание, что обе используют $_SERVER['HTTP_REFERER'], который, как сказано в документации PHP, "Не все пользовательские агенты его устанавливают, а некоторые предоставляют возможность изменять HTTP_REFERER как функционал. Вкратце, ему нельзя полностью доверять." @JMau
gmazzap
используйте wp_get_referer(); для получения реферера из '_wp_http_referer', HTTP реферера или текущей страницы. Для получения дополнительной информации читайте кодекс
не сильно, но мы оба писали ответ в одно и то же время, когда я собирался нажать кнопку отправки ответа, появилось уведомление, но я опоздал, нажал и ответ был опубликован.
Anjum