2017-07-04 380 views
0

我想在設置頁面激活我的插件時註冊一個選項。激活插件時的Wordpress註冊選項

我的代碼是這樣的:

function jpsNews_activate_plugin() { 
    // REGISTER SETTINGS 
    register_setting('jps_settings_group', 'jps_test'); 
    ... 
} 
register_activation_hook(__FILE__, 'jpsNews_activate_plugin'); 

當我去到數據庫和搜索該選項,沒有被發現。我錯過了什麼?我可以這樣做嗎?

在此先感謝。

回答

0

只有在轉到設置窗格並提交新值後,纔會將您的選項存儲到數據庫。

你必須記住,在WordPress中 - 就像在任何PHP應用程序中 - 只有當代碼運行加載時纔會加載東西。設置API允許您爲正在使用的當前管理頁面創建設置頁面 - register_setting()方法不會「將新設置註冊到數據庫中」或其他內容,只是在管理員當前處於管理員屏幕並查看設置頁面!

創建新設置的正確方法是在admin_init操作下注冊設置,該操作恰好在管理員頁面顯示給管理員之前發生。有關如何正確執行此操作的簡單示例,請參閱the register_settings() documentation

+0

所以,我不能讓它在插件激活?我也試過這樣做:'add_action('admin_init','jps_settings')';然後,'函數jps_settings(){...}'但是不會出現 – eskimopest

+0

正如我在我的回答中所解釋的,Wordpress沒有「設置庫」,您可以在其中添加設置,Wordpress將加載它們 - 設置在運行時顯示管理屏幕時添加。 – Guss

+1

如果您使用了正確的操作,您仍然不會在數據庫中看到您的設置 - 正如我在我的答案中所述,只是添加設置並加載管理頁面不足以在數據庫中創建設置 - 你必須在管理員屏幕上輸入一些值並保存。要做到這一點,你還需要畫出UI的設置,你沒有在你的代碼示例中顯示,所以我假設你沒有。我建議閱讀設置API,也可以查看我編寫的代碼:https://github.com/con-tools/wordpress-plugin/blob/master/con-troll/options.php – Guss