我有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