2012-07-26 89 views
0

我正在尋找一種方式來重寫類似的WordPress的URL其中:WordPress的URL重寫

http://www.example.com/?p=5 

成爲

http://www.example.com/some-page-with-that-title 

我想

http://www.example.com/events/?event_id=23 

成爲

http://www.example.com/events/some-event-title 

我發現了wordpress重寫api,併成功地獲取了以下內容以使用和事件模板頁面重寫url。

add_action('init', 'events_permalinks'); 
function events_permalinks() { 
    add_rewrite_rule(
     'events/([^/]+)/?', 
     'index.php?pagename=events&event_name=$matches[1]', 
     'top' 
); 
} 

add_filter('query_vars', 'events_query_vars'); 
function events_query_vars($query_vars) { 
    $query_vars[] = 'event_name'; 
    return $query_vars; 
} 

,並得到變量, get_query_var(「EVENT_NAME」)

我知道我需要查找的事項標識在非WordPress的事件表,以獲得名字,但我不知道在哪裏把查詢,所以我可以交換到URL。希望我沒有混淆的東西。 :)

回答

0

你做錯了。

WordPress中的網址可以在您的儀表板中輕鬆自定義。請參閱WordPress Codex的Using Permalinks文章。

+0

我看過那篇文章。它並不真正適用於我的問題自定義$ _GET變量只是像%post_id%等wordpress變量 – user1357684 2012-07-26 18:33:19

0

我不是一個真正的重寫專家,但如果你只使用一個$ _GET var這段代碼將爲你工作(至少它對我有效)。正如你所看到的,重寫sintax在你引用$ _GET參數的方式上有點不同。

您的代碼也適用於多個$ _GET var上下文,而不是一個。希望爲你工作,rembember更新你的永久鏈接去設置→永久屏幕→保存更改。

更多信息:Wordpress Rewrite API | Wordpress Permalinks Codex

add_action('init', 'events_permalinks'); 

    function events_permalinks(){ 
    add_rewrite_rule(
      '^events/([^/]*)$', 
      'index.php?pagename=events&event_name=$matches[1]', 
      'top' 
      ); 
    } 

    add_filter('query_vars', 'events_query_vars'); 
    function events_query_vars($query_vars) { 
     $query_vars[] = 'event_name'; 
     return $query_vars; 
    }