2010-04-08 55 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