wordpress 为什么“get_option”返回一个空字符串而不是我的默认数组?

hiz5n14c  于 2024-01-06  发布在  WordPress
关注(0)|答案(3)|浏览(218)

下面的代码会导致错误:Notice: Uninitialized string offset: 0

$defArray = array( "width" => "", "height" => "" );
$option = get_option( "myoption", $defArray );

//This throws the error
echo $option[ "width" ];

//This shows it as type "string"
var_dump( $option );

字符串
根据文档,我应该能够传递一个默认值,如果该选项中没有保存任何内容(实际上没有,我只是编造了这个值),则返回该值。http://codex.wordpress.org/Function_Reference/get_option
为什么不使用默认值?

carvr3hs

carvr3hs1#

不知何故,在刷新页面时,该选项被创建。我不知道如何,因为我从来没有提交过表单。调用delete_option(...)停止了错误的发生。

vyu0f0g1

vyu0f0g12#

你可以通过解析args来强制返回;

$defArray = array( "width" => "", "height" => "" );
$option = get_option( "myoption", $defArray );
$option = wp_parse_args( $option , $defArray  );

字符串

x9ybnkn6

x9ybnkn63#

我知道这是超过9岁,但我刚刚花了一天调试类似的东西。我们的选项也被设置为空字符串,并导致返回,而不是默认值。
问题是,我们在注册设置时使用了general选项组,因此对常规设置的任何更改,即在wp-admin/options-general.php上保存更改,都会导致我们的选项设置为空字符串。
解决方案是将选项组更改为options或一些唯一的值,以将设置分组在一起。

相关问题