gpt4 book ai didi

php - wordpress get_option 返回 false

转载 作者:可可西里 更新时间:2023-11-01 06:30:53 24 4
gpt4 key购买 nike

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

这返回了我的值(value):“别的东西”

例如这段代码:

 $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 即使选项在数据库中并且具有“其他东西”的值(value)。

最佳答案

这个问题是我遇到问题的那三个选项以某种方式在 wp 缓存中缓存了两次。

所以一个选项被缓存了两次,update_options() 总是更新这两个选项之一,而 get_option() 总是让另一个缓存为空值。

不确定这是怎么发生的,但清除缓存解决了我的问题。

关于php - wordpress get_option 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29909572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com