下面的代码会导致错误: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
为什么不使用默认值?
3条答案
按热度按时间carvr3hs1#
不知何故,在刷新页面时,该选项被创建。我不知道如何,因为我从来没有提交过表单。调用
delete_option(...)
停止了错误的发生。vyu0f0g12#
你可以通过解析args来强制返回;
字符串
x9ybnkn63#
我知道这是超过9岁,但我刚刚花了一天调试类似的东西。我们的选项也被设置为空字符串,并导致返回,而不是默认值。
问题是,我们在注册设置时使用了
general
选项组,因此对常规设置的任何更改,即在wp-admin/options-general.php
上保存更改,都会导致我们的选项设置为空字符串。解决方案是将选项组更改为
options
或一些唯一的值,以将设置分组在一起。