未定义的索引:ID,当我保存选项时

时间:2013-11-21 作者:Unix

我正在制作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中的注释对受影响的行进行了编号。

我做错了什么?有什么建议吗?

1 个回复
最合适的回答,由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。前一段时间,我向您展示了如何调试此类问题,您是否尝试过自己解决它

结束

相关推荐