2014-11-24 52 views
-1

我有一個WordPress(4.0)網站和多個網址動態創建的情況。事情是這樣的:WordPress的屏蔽多個網址到單個頁面

/api-page/111/222/ 
/api-page/aaa/bbb/ 

我需要他們指出:

/api-page/?param1=111&param2=222 
/api-page/?param1=aaa&param2=bbb 

,因爲只有 「API頁」 的存在。在「api-page」上,我有用於處理參數的簡碼。

我知道如何重定向URL與htaccess文件,但我需要網址保持原樣。

我管理這條線在htaccess文件來屏蔽網址:

RewriteRule ^api-page/(.+)/(.+)/$ /api-page/?param1=$1&param2=$2 [L] 

但WordPress的拋出404錯誤。

如何做到這一點?

+0

你能解釋爲什麼你低估了我的問題嗎? – 2014-11-24 20:14:36

回答

0

我找到了解決方案。該解決方案不使用htaccess。我把這個片段的主題function.php文件:

function api_rw_rules() {  
    global $wp; 
    $wp->add_query_var('param1'); 
    $wp->add_query_var('param2'); 
    add_rewrite_rule('api-page/(.+)/(.*)','index.php?pagename=api-page&param1=$matches[1]&param2=$matches[2]','top'); 
    global $wp_rewrite; 
    $wp_rewrite->flush_rules(); 
} 
add_action('init', 'api_rw_rules'); 

最後兩行的功能,可以設置重寫規則之後被去除

/* 
global $wp_rewrite; 
$wp_rewrite->flush_rules(); 
*/ 

這種解決方案的唯一的缺點是變量在$ _GET中不可用。它們可用於get_query_var():

$param1 = get_query_var('param1'); 
$param2 = get_query_var('param2');