我正在制作Wordpress主题,当我使用WP\\U调试保存选项时,这些“通知”重复了很多次:
Notice: Undefined index: id in /var/www/Seozeta/wp-content/themes/seozeta/seozeta-options.php on line 997
Notice: Undefined index: id in /var/www/Seozeta/wp-content/themes/seozeta/seozeta-options.php on line 1000
代码如下:
foreach ($options as $value) {
if (isset($_REQUEST[ $value[\'id\'] ] ) ) { //#997
update_option( $value[\'id\'], $_REQUEST[ $value[\'id\'] ] );
} else {
delete_option( $value[\'id\'] ); //#1000
}
}
似乎是首字母
isset 应该可以解决问题,但事实并非如此。我使用PHP中的注释对受影响的行进行了编号。
我做错了什么?有什么建议吗?
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
添加var_dump($value);
在这个循环的边缘。我很确定不是所有的选择都有id
属性,可能是其他错误。。。
要删除这些通知,您的代码应该如下所示:
foreach ($options as $value) {
if ( array_key_exists(\'id\', $value) ) {
if (isset($_REQUEST[ $value[\'id\'] ] ) ) { //#997
update_option( $value[\'id\'], $_REQUEST[ $value[\'id\'] ] );
} else {
delete_option( $value[\'id\'] ); //#1000
}
}
}
顺便说一句,这个通知与WordPress无关,所以它脱离了主题
PPS。前一段时间,我向您展示了如何调试此类问题,您是否尝试过自己解决它