2013-10-02 44 views
0

我一直在這個很長的時間,我找不到一個方法如何使它的工作。

我用我的主題創建了一個簡單的主題選項,但將所有選項都放到了自定義數據庫表中。 我想知道$ wpdb-> insert()如何插入所有選項,如add_option()。

這是我的代碼 - http://pastebin.com/5xHBs6r2 如果你看第209行*函數stheme_initialize_theme_options()*你會明白我的意思。我還創建了一個函數(*函數stheme_default_options()*),其中包含默認選項,並返回apply_filters()

我希望有人能幫助我,因爲我現在正在努力爭取一週。

謝謝! 此致敬禮。

+0

你是否檢查過wpdb類的源碼,特別是'function _insert_replace_helper' – gwillie

回答

1

考慮使用選項API。這比編寫自己的查詢要簡單得多,而且它已經內置了。

http://codex.wordpress.org/Options_API

設置,重置和檢索你可以存儲3個或4個命令乾脆做選擇,所以這是一個非常漂亮的系統。舉例來說,這樣的:

add_option('my_option', 'foo'); 

將實例在數據庫中的一個選項,這將更新:

update_option('my_option', 'foo2'); 

,最後,這將檢索:

$s = get_option('my_option'); 

如果你這樣做使用Options APi,堅持命名約定是一個不錯的主意,爲你的選項設置自己的前綴。如果你使用任何顯而易見的東西,就很容易轉到其他插件等。

+0

我知道如何使用Options API。我不想讓我的主題有這個自定義表,所以當我的主題停用時,所有將被刪除,包括所有數據庫垃圾留下。 –

+0

所以你打算寫主題停用清除功能? –

+0

對不起,忽略這一點,我剛剛看到你這樣做。 IMO,編寫停用代碼以從數據庫中刪除選項將變得非常簡單。 –

0

這是一個經典的XY Problem

不要創建一個表來執行WordPress已經做的事情。你甚至把自己陷入陷阱,因爲你將無法用WP默認工具查詢你的數據,並且必須重新發明輪子才能實現它。

您要找的是register_activation_hookregister_deactivation_hookregister_uninstall_hook

除了卸載掛鉤,我們可以使用文件uninstall.php與我們的插件來刪除插件後清理我們的東西。在WordPress的答案見this related posts


PS:在你的代碼,這是完全沒有道理的:

add_action('init', 'st_register_table', 1); 

您解決定製表中簡單地$wpdb->prefix.'your_table'