У меня есть сайт Wordpress, вызывающий .php-файл на нашем сервере с использованием короткого кода. Цель состоит в том, чтобы вернуть параметры запроса в форму Wordpress с помощью скрытых полей.
Вот проблема: $ _GET ['param'], похоже, не работает для любого ключа «param». Например, у меня есть следующий код в моей функции SHORTCODE:
ChromePhp::log('Test Output');
ChromePhp::log($_GET['test']);
ChromePhP::log($_SERVER['QUERY_STRING']);
Я установил PHP протоколирования плагин, так что я могу видеть вывод PHP из консоли JavaScript Chrome. Когда я иду в URL mysite.com/properpage?test=testparam Выход:
Test Output
null
null
Я не уверен, если это уместно, но когда я иду в URL с соответствующими параметрами запроса (? test = testparam), url сбрасывает себя и очищает параметры запроса от конца.
Я чувствую, что мне не хватает чего-то простого. Или Wordpress может блокировать параметры запроса где-то для этой страницы, чтобы очистить URL-адрес?
Как предложил Стиву в комментарии, я добавил следующее в файл functions.php, где моя функция шорткод:
add_action('init','wpse46108_register_param');
function wpse46108_register_param() {
global $wp;
$wp->add_query_var('test');
}
Но
ChromePhp::log(get_query_var('test'));
до сих пор пустой вывод, когда я добавляю запрос param? test = test.
устанавливается ваш Wordpress, чтобы использовать пермалинки/Дружественные URL? Если это так, возможно, параметры не передаются ... попробуйте использовать метод, описанный на: http://wordpress.stackexchange.com/questions/46108/wordpress-and-get-params – steve
Мы используем постоянные ссылки .. день & имя формат. Похоже, что это решение может быть на правильном пути, но оно все еще не исправляет его. Я обновил вопрос, чтобы описать, что я сделал. – cyk