Получение параметров URL из реферера
Не совсем уверен, относится ли этот вопрос к PHP или конкретно к WordPress...
Я реализую WordPress Settings API со страницей настроек с вкладками. Я добавил кнопку 'сбросить вкладку', но поскольку валидация выполняется на отдельной странице (options.php), я не могу определить, на какой вкладке я нахожусь - без добавления вкладки как скрытого поля, чего я хочу избежать.
Я нашел функцию wp_get_referer()
, но она возвращает полный URL - я не уверен, как извлечь tab=tab1
в виде переменной.
Обновление - Ответ:
$url = parse_url(wp_get_referer());
parse_str($url['query'], $path);
$tab = $path['tab'];
Как указано в ответах, затем требуется некоторая валидация.

Если в URL присутствует tab=tab
, тогда:
global $_GET;
var_dump($_GET); // только для отладки; Вы должны увидеть то, что вам нужно.
Это чистый PHP. Если вам действительно нужно обработать эту строку (не знаю, зачем вам это), используйте parse_url
, а затем примените parse_str
к части query
.
$path = parse_url($url);
$path = parse_str($path, $output);
var_dump($output); // опять же, только для отладки
Для полноты картины, пожалуйста, не используйте эти значения без предварительной проверки.
Я вас правильно понял?

К сожалению, я не могу использовать $_GET
, так как URL, из которого я пытаюсь получить параметр, является реферером, а не текущим URL.
Однако, учитывая, что я могу получить доступ к рефереру через функцию wp_get_referer
, думаю, я смогу собрать решение с использованием parse_url
и parse_str
для извлечения параметра tab.
Спасибо за помощь
