Использование переменных $_GET в URL?

6 февр. 2012 г., 19:13:22
Просмотры: 27K
Голосов: 7

Мне нужно сгенерировать простое сообщение об ошибке на странице, передавая переменную через URL.

URL имеет следующую структуру:

http://site.com/parent-category/category/?error=pause

Я уверен, что это связано с перезаписью постоянных ссылок (permalinks), но не знаю, как это исправить.

1
Комментарии

Вам нужно знать, как использовать переменную $_GET или как добавлять параметры запроса в URL?

Mamaduka Mamaduka
6 февр. 2012 г. 19:18:05
Все ответы на вопрос 2
3
13

Попробуйте добавить переменную в массив WordPress 'recognised query variables'...

add_filter('query_vars', 'my_register_query_vars' );
function my_register_query_vars( $qvars ){
    // Добавляем переменную запроса в массив $qvars
    $qvars[] = 'my_error';
    return $qvars;
}

Затем значение 'my_error' можно получить с помощью get_query_var('my_error'). (См. Кодекс)

РЕДАКТИРОВАНИЕ

Согласно комментарию Otto, лучше сделать так:

add_action('init','add_my_error');
function add_my_error() { 
    global $wp; 
    $wp->add_query_var('my_error'); 
}
6 февр. 2012 г. 19:20:54
Комментарии

Я бы не использовал именно этот фильтр. У нас есть функции, которые следует использовать для этого вместо него.

add_action('init','add_my_error'); function add_my_error() { global $wp; $wp->add_query_var('my_error'); }

Otto Otto
6 февр. 2012 г. 22:49:30

Круто. На самом деле это не так уж важно, просто я предпочитаю не использовать глубокие хуки, когда можно обойтись поверхностными. :)

Otto Otto
6 февр. 2012 г. 23:01:41

Я всегда использую add_rewrite_tag($tagname,$regex). Есть разница?

Rob Vermeer Rob Vermeer
6 февр. 2012 г. 23:10:53
0

Это был единственный способ, который сработал

add_action('init','add_query_args');
function add_query_args()
{ 
    add_query_arg( 'error', 'pause' );
}

http://codex.wordpress.org/Function_Reference/add_query_arg

26 сент. 2012 г. 20:53:23