2010-04-08 5 views
0

Скажем, у меня есть форма для поиска по нескольким тегам в wordpress.Как изменить запрос заголовка wordpress

<input type="checkbox" name="my_tags[]" value="tag1" /> 
<input type="checkbox" name="my_tags[]" value="tag2" /> 

Я хочу сделать так, чтобы, когда мой плагин видит, что my_tags [] установлено, что переписывает запрос сказать

mysite.com/?tag=tag1+tag2 

Я знаю, что использовать add_query_arg поместить в тег, и использовать фильтры query_vars, чтобы разрешить отправку моих аргументов, но для чего я подключаюсь, чтобы получить аргументы, отправленные после запроса, но до того, как wp проанализирует запрос?

ответ

0

Мое понимание заключается в том, что на самом деле вы бы не «заменяли» запрос в текущем запросе, а формировали новый URI запроса и перенаправляли клиенту wp_redirect() с кодом состояния 302 Found. Что-то вроде:

wp_redirect(add_query_arg(array('tag' => implode(' ', $_REQUEST['my tags'])), bloginfo('url')), 302); 

Этот вид уборки должен произойти до отправки заголовков, очевидно. Логичным местом для его подключения через API плагинов будет действие parse_request или send_headers. Я имею в виду, что все, что вы делаете, это разбор запроса и отправка заголовков. : P

Я почти ничего не знаю об этом с переписыванием сервера в файле .htaccess, так что, возможно, вы также можете изучить это.

+0

за исключением того, что вы должны использовать get_bloginfo() вместо bloginfo(), я согласен. –