我正在尝试创建带有复选框字段的选项页面。该复选框工作正常,但当我取消选中并保存设置时,会显示一个错误字符串
Notice: Uninitialized string offset: 0 in C:\\xampp\\htdocs\\project\\wp-content\\plugins\\test\\admin\\options.php on line 55
以下是主要设置代码:
register_setting(\'twb_settings\', \'twb_option\', \'\' );
add_settings_section(\'twb_section\', \'General Settings\', \'\', __FILE__);
add_settings_field( \'hide_avatar\', \'Hide Avatar\', \'hide_vatar_fn\', __FILE__, \'twb_section\');
function hide_vatar_fn()
{
$options = get_option( \'twb_option\' );
echo\'<input type="checkbox" id="hide_avatar" name="twb_option[hide_avatar]" value="1" \' . checked(1, $options[\'hide_avatar\'], false) . \'/>\';
}
如果我添加了消毒,请回电话
register_settings
, 然后错误得到替换为
Undefined Variable
错误
如果我停用WP_Debug
模式下,所有错误都消失了。
最合适的回答,由SO网友:Mark Kaplun 整理而成
很可能是您的$options
是字符串而不是数组。
验证$选项是否符合您期望的格式总是更好的,尤其是在开发时,您可能会切换格式,并且在这样做时懒得清理数据库。
类似于
if (!isset($options[\'hide_avatar\']))
$options[\'hide_avatar\'] = 0;
可能仍然会导致一个奇怪的错误,但要准确地理解其中的位置和原因可能会更容易一些。