2013-02-02 104 views
0

我在WordPress創建一個假網頁,我趕上這個代碼:WordPress的 - 重寫假的網址

if ($_GET['fake_page'] == "myfakepage") { 
    add_filter('the_title','plugin_myown_title'); 
    add_filter('the_content','plugin_myown_content'); 
    add_action('template_redirect', 'plugin_myown_template'); 
} 

這個工作正常。 現在我想要做的是

my_site/product/myfakepage 

,其中產品是由WordPress的儀表板創建的現有頁面重寫這樣這個網址

my_site?fake_page=myfakepage 

我遵循這個指南:

http://statichtml.com/2010/mod-rewrite-baseon-on-query-string.html

和定義這樣的規則:

RewriteEngine On 
RewriteCond %{QUERY_STRING}  ^fake_page=(.*)$ [NC] 
RewriteRule ^/$  my_site/product/%1  [NC,L,R=301] 

但我得到的是

my_site/product?fake_page=myfakepage 

問題出在哪裏? 此外,我想知道,如果輸入到瀏覽器:

my_site/product/myfakepage 

我可以使WordPress的把它當作

my_site?fake_page=myfakepage 

沒有任何重定向。 謝謝!

回答

0

從您的functions.php試試這個代碼:

add_action('generate_rewrite_rules', 'my_rewrite_rules'); 
function my_rewrite_rules($wp_rewrite) 
{ 
    $wp_rewrite->rules = array(
     'product/myfakepage/?$' => $wp_rewrite->index . '?fake_page=myfakepage', 
    ) + $wp_rewrite->rules; 
} 

注意:您不需要這個定製的.htaccess。順便說一句:你不應該直接修改.htaccess,從來沒有。 WordPress中有大量的Rewrite API,允許您應用自定義規則。

+0

謝謝,但它不起作用,它返回一個404錯誤。問題是否與假頁面有關?如果我把你的規則放入.htaccess中,它就是正確的。 –

+0

您的「fake_page」究竟是如何實施的?通過鉤?什麼? –

+0

這只是一個functions.php函數,它包含我的問題中唯一的證據。該函數然後被調用到404.php –