2014-01-30 32 views
1

我目前有wordpress頁面,可以通過索引頁面(所有帖子)和類別頁面查看。Wordpress漂亮的固定鏈接/ w漂亮的查詢參數(用於排序)通過ModRewrite

我目前的永久鏈接結構是'http://www.mysite.com/%postname%/'這是整齊,我想保持。

當前的例子..

主頁(文章列表) http://www.mysite.com/

類別頁面(過濾後列表 - 在類別過濾器) http://www.mysite.com/categoryname/

任何帖子列表必須順序(由用戶的選擇)通過以下任何參數...

最舊 - >最新,最新 - >最舊,昂貴 - >最便宜,最便宜 - > Exp enshest,HighestRated-> LowestRated,LowestRated-> HighestRated

我已經在functions.php中正確處理了所有排序,它從GET參數集中檢索。 (最後4,我已經整理自定義元屬性/正確處理)

例子是... http://www.mysite.com?SortBy=Newest

http://www.mysite.com/categoryname?SortBy=HighestRated

我不能得到正確運作的.htaccess與ModRewrite文件實現這個....

我希望他們看起來像這些(上面的兩個例子)

http://www.mysite.com/SortBy/Newest/

http://www.mysite.com/categoryname/SortBy/HighestRated

我的網絡服務器在Linux服務器上運行Apache。

我現在的.htaccess文件看起來像這樣...

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

它似乎並沒有做我現在重新寫入的動作,但我相信這些都是由WordPress的其他地方辦理?

+0

您需要[WP Rewrite API](http://codex.wordpress.org/Class_Reference/WP_Rewrite)。 WordPress的處理所有重寫規則與它的API。 –

+0

所以我必須寫一個函數來做到這一點? –

+0

當然是!你應該看看[add_rewrite_ruke](http://codex.wordpress。org/Rewrite_API/add_rewrite_rule)函數。 –

回答

0

使用add_query_arg WordPress函數。 WordPress旨在拒絕任何無法識別的URL查詢參數。您需要告訴WordPress您將通過URL發送的新參數。

參考:。 http://codex.wordpress.org/Function_Reference/add_query_arg

「檢索修改後的URL(含)查詢字符串

您可以重建URL並使用該功能來添加新的查詢變量URL查詢你也可以用查詢數據檢索完整的URL。「

+0

謝謝,我仍然明白這是如何回答我的問題。這似乎與創建添加了參數的鏈接有關。 我想將查詢參數更改爲一個漂亮的URL。如果這確實可以做到這一點,你可以提供一個例子,就像我的問題一樣,根據WP在這篇文章中給出的例子,我無法理解它(如果它是正確的) –