2012-08-14 139 views
1

我一直試圖讓我的頭繞着Wordpress URL重寫,但我沒有運氣。WordPress的URL重寫不工作/註冊

我想要做什麼:

我建立一個自定義插件,用戶可以在其中建立各種期權產品。這些選項共同構建了一個代碼,指代客戶構建的獨特產品。

的代碼可能是這樣的140-3-WPA-ABC-2.

該插件會出現一個專用頁面上:

http://wordpress-site/configurator/ 

我想用一個prexisiting碼的客戶能夠將其輸入喜歡的網址這個:

http://wordpress-site/configurator/140-3-WPA-ABC-2/ 

然後,插件獲取變量,並用它來構建正確的產品。

問題

它應該是相當簡單,但我不能得到任何使用WordPress的URL重寫規則的工作,我甚至不能得到任何看似登記爲一個WordPress的查詢變種。

我一直試圖在主插件初始化代碼如下:

add_filter('query_vars', 'conf_query_vars'); 
add_action('init', 'cong_rewrites'); 

function conf_query_vars($query_vars){ 
    $query_vars[] = 'product_code'; 
    return $query_vars; 
} 

function conf_rewrites(){ 
    add_rewrite_rule(
     'configurator/([^/]+)/?$', 
     'index.php?product_code=$matches[1]', 
     'top' 
    ); 
} 

如果我再嘗試打開http://wordpress-site/configurator/140-3-WPA-ABC-2/我收到找不到錯誤的頁面。回顯query_vars似乎顯示變量'product_code'沒有被創建。

ps我試着刷新重寫緩存。道歉交叉發佈到Wordpress.stackexchange.com - 但似乎編程問題在這裏更好?

+0

這可能屬於WordPress的StackExchange http://wordpress.stackexchange.com/ – dnagirl 2012-08-14 14:57:36

+0

嘿 - 我有時有WordPress重寫的問題。您可能需要「刷新」固定鏈接 - 即只需點擊並在固定鏈接設置頁面上點擊「保存」即可。看看是否修復它。讓我知道它是否會發現一些代碼,當你的插件安裝時會自動執行。 – 2012-08-14 15:00:26

回答

1

試試這個,我有同樣的問題。

add_action('init', function() { 
    add_rewrite_endpoint('sponsor', EP_ALL); 
}); 

add_filter('request', function($args) { 
    print_r($args); 
    return $args; 
}); 

我想你應該只集成函數add_rewrite_endpoint。