UPDATE: 此错误来自WP\\U调试。。。当然,embedded\\u url还不存在。然而,当我使用表单设置$options[embedded\\u url]的值时,$options数组神奇地添加了embedded\\u url的新值,并以某种方式记住了text\\u string的旧值。我添加了
unset($options[\'text_string\']);
但只要我按下保存设置按钮,它就会再次回到$选项中。text\\u字符串在我的代码中不再存在。它完全消失了。这个text\\u字符串幽灵在哪里?!
我跟踪了this tutorial 几乎是逐字逐句地为我创建的插件创建自定义管理/设置页面。我试图更改选项名称text_string
其他方面——embedded_url
. 我已启用WP\\U调试。当我加载插件的设置页面时,文本输入字段正上方出现以下错误:
注意:未定义索引:embedded\\u url in…。
然后指向此函数的回音线:
function plugin_setting_url() {
$options = get_option(\'plugin_options\');
echo "<input id=\'plugin_url\' name=\'plugin_options[embedded_url]\' size=\'40\' type=\'text\' value=\'{$options[\'embedded_url\']}\' />";
}
因为这是唯一一个
text_string
出现在教程中的验证方法之外,我不明白为什么
embedded_url
定义方式与
text_string
是我做错了什么?
最合适的回答,由SO网友:DaveDunn 整理而成
我认为使用get\\u选项时需要设置默认值
函数plugin\\u setting\\u url(){$options=get\\u option(\'plugin\\u options\',array(\'embedded\\u url\'=>\'\');echo“”;}
除非plugin\\u选项已经存在,否则您需要使用wp\\u parse\\u args来合并两个数组。
函数plugin\\u setting\\u url(){$options=wp\\u parse\\u args(get\\u option(\'plugin\\u options\',array()),array(\'embedded\\u url=>“”));echo“”;}