2016-01-27 28 views
1

這是從我的WordPress插件裏面,主要的文件中:WordPress的PHP - 如何在主文件更新插件的設置值

function my_plugin_install() { 

    $my_site_url = get_site_url(); 

    $my_options['my_site_url'] = $my_site_url; 

    // Save 

} 

register_activation_hook(__FILE__, 'my_plugin_install'); 

目前,安裝成功,但「my_site_url」選項不保存。我假設,因爲我在這一點上使用$ my_options數組的方式並不意味着什麼。它應該將這些數據保存到wp_options表中。

我似乎無法得到這個保存,甚至找到一種方法來測試,因爲使用「回聲」在安裝過程中給WordPress的錯誤。在安裝過程中是否有運行腳本和更新數據庫的最佳方法?

在此先感謝。

回答

1

您需要使用WordPress的功能update_option以保存選項值:

function my_plugin_install() { 
    $my_site_url = get_site_url(); 
    update_option('my_site_url', $my_site_url); 
} 

register_activation_hook(__FILE__, 'my_plugin_install'); 

再後來,當你需要的值,你可以使用get_option

$my_site_url = get_option('my_site_url'); 

* UPDATE
既然看起來你想管理多個你自己的選擇,那麼我建議用一個簡單的 「實用」 的功能,像這樣T:

function update_my_option($key, $value) { 
    // Load all of the option values from wp_options 
    $all_options = get_option('my_options'); 
    // Update just the one option you passed in 
    $all_options[$key] = $value; 
    // Save to wp_options 
    update_option('my_options'); 
} 

而且,適當的getter函數:

function get_my_option($key, $default = NULL) { 
    // Load all of your options from wp_options 
    $all_options = get_option('my_options'); 
    // Return just the one option you are asking for 
    return (isset($all_options[$key])) ? $all_options[$key] : $default; 
} 

然後,而不是直接調用update_option,你會調用這個函數,如圖所示如下:

function my_plugin_install() { 
    $my_site_url = get_site_url(); 
    update_my_option('my_site_url', $my_site_url); 
} 

而且,爲了讓你的選擇之一:

$my_site_url = get_my_option('my_site_url'); 
+0

謝謝,update_option看起來正是我需要使用的!你知道我可以如何使用這段代碼來指定我更新的特定選項嗎?已經嘗試過,但目前失敗:update_option('my_options [my_site_url]',$ my_site_url); – Kobius

+0

我已經提供了一個更新來回答這個問題。 (我經常使用這種東西)。 –

+0

完美地工作,感謝您的幫助! – Kobius

相關問題