wordpress get_option返回false

时间:2015-04-28 03:05:58

标签: php mysql wordpress

我有wordpress插件,注册设置如下:

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,即使选项在数据库中,并且值为“其他东西”。

1 个答案:

答案 0 :(得分:0)

您应该在任何外部文件中包含文件wp-blog-header.php,以便能够使用Wordpress功能。该文件位于wordpress根文件夹中。