2010-04-08 53 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并使用默认的302 Found状态码重定向客户端wp_redirect()。例如:

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

这种清理必须在发送标题之前发生,很明显。通过Plugin API挂钩它的逻辑位置将是parse_requestsend_headers操作。我的意思是,你在这里做的只是解析一个请求并发送头文件。 :P

虽然我在.htaccess文件中对服务器进行重写时几乎一无所知,所以也许你也可以探索一下。

+0

除了你应该使用get_bloginfo()而不是bloginfo(),我同意。 – 2010-04-10 22:06:20