假设我有一个表单可以在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解析请求之前发送的参数呢?
发布于 2010-04-10 04:46:09
我的理解是,您实际上不会“替换”当前请求中的查询,而是形成一个新的请求URI,并使用默认的302 Found
状态码使用wp_redirect()
重定向客户端。类似于:
wp_redirect( add_query_arg( array( 'tag' => implode( ' ', $_REQUEST['my tags'] ) ), bloginfo('url') ), 302);
显然,这种内部清理必须在发送报头之前进行。通过Plugin API将其挂钩的逻辑位置是parse_request
或send_headers
操作。我的意思是,您在这里所做的就是解析一个请求并发送头部。:P
不过,我对在.htaccess文件中进行服务器重写几乎一无所知,所以也许您也可以探索一下这一点。
https://stackoverflow.com/questions/2603537
复制相似问题