2009-10-13 72 views
0

我正在爲WordPress編寫一個插件,實際上它將是一個單獨的排序模塊(它將被放置在我正在開發的站點以及其他站點上的IFRAME中)但與其管理員綁定到WordPress。我寫的行政部分沒有太多的麻煩,但是我在前端遇到了麻煩。爲我的WordPress插件創建自定義重寫規則

首先,我想我的劇本是通過www.mysite.com/order/和,as per the WordPress codex訪問,我發現我需要將下面的代碼放到我的主要插件文件:

add_action('init', 'ta_flush_rewrite_rules'); 

function ta_flush_rewrite_rules() 
{ 
    global $wp_rewrite; 
    $wp_rewrite->flush_rules(); 
} 

add_action('generate_rewrite_rules', 'ta_add_rewrite_rules'); 

function ta_add_rewrite_rules($wp_rewrite) { 
    $new_rules = array("order/(.+)" => "/wp-content/plugins/my-plugin/order.php"); 
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; 
} 

但它不起作用,我並不想用.htaccess黑客入侵。

此外,即使這將工作,order.php文件是從我的插件單獨的文件。這意味着我必須包含一些WordPress文件才能訪問數據庫和其他幫助程序類和函數。這讓我們對第二個問題產生懷疑:URL是否可以調用我的插件的函數來呈現訂單頁面?

+0

你找到了一個解決方案與其他插件干擾? – Ash 2011-07-15 22:07:42

+0

儘管我記得,我又走了一條路。 – janosrusiczki 2011-07-18 13:08:47

回答

2

做INIT不刷新規則,因爲它會讓每個頁面上大量的MySQL查詢和使用自定義重寫規則(如那些創建自定義文章類型)