我有WordPress的插件,它像寄存器的設置:WordPress的get_option返回false
register_settings("myplugin_settings","myplugin_option1");
和插件激活它添加類似的選項:
add_option("myplugin_option1","");
然後如果我更新選項,如:
update_option("myplugin_option1","something else");
及更高版本嘗試從數據庫中獲取它:
$myoption = get_option("myplugin_option1");
get_option()返回false,甚至存在選項並更新值。
我知道值的更新和選項存在,因爲當我運行查詢來獲取選項,我所獲得的價值:
global $wpdb;
$query = 'SELECT * FROM wp_options WHERE option_name = "myplugin_option1";
$result = $wpdb->get_results($query);
這將返回我的價值:「別的東西」
例如,這代碼:該代碼執行
$option = get_option("myplugin_option1");
if(false == $option){
global $wpdb;
$query = 'SELECT * FROM wp_options WHERE option_name = "myplugin_option1"';
$result = $wpdb->get_results($query);
}
後,$ result將包含值:
Array
(
[0] => stdClass Object
(
[option_id] => 11752
[option_name] => myplugin_option1
[option_value] => something else
[autoload] => yes
)
)
所以選項存在並具有值,但get_option()返回false。
我只有3個選項只有在我的插件安裝在一個網站上的這個問題。有沒有人有一些想法,爲什麼get_option()返回false甚至選項是在數據庫中,並具有「別的東西」的價值。
它包括在內,wordpress功能正常工作。我有3個選項的問題,對於其他所有其他工作正常。我在一個循環中獲取選項,只是失敗。 – carpics