提问人:Towfiq 提问时间:7/15/2010 更新时间:7/15/2010 访问量:6689
Wordpress 主题开发:出现未定义索引错误
Wordpress Theme development: Getting Undefined index error
问:
你好,我是wordpress主题开发人员。我创建了一个主题,该主题在 WP_DEBUG=False 中工作正常,但在设置 WP_DEBUG=True 时出现未定义的索引错误
我的主题有一个选项页面,每当我单击保存时,我都会收到以下错误:
Notice: Undefined index: ang_temp in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147
Notice: Undefined index: ang_breadcrumbs in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147
Notice: Undefined index: ang_hide_social in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147
Notice: Undefined index: ang_hide_tw in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147
Notice: Undefined index: ang_hide_fb in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147
Notice: Undefined index: ang_hide_ms in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147
Notice: Undefined index: ang_hide_rss in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php:147) in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 156
这是我的主题函数.php我不知道我做错了什么。我对php知之甚少。希望有php知识或wordpress主题开发知识的人可以提供帮助。
答:
2赞
MrWhite
7/15/2010
#1
146. foreach ($options as $value) {
147. update_option( $value['id'], $_REQUEST[ $value['id'] ] ); }
产生此错误的代码位(如上所述)未检查是否存在。您收到的错误表明它没有(只有在启用完全错误检查的情况下,您才会收到此通知)。你的代码的其他部分在使用它之前会检查这个变量的存在(所以它们没问题),并建议你应该在这里做同样的事情。$_REQUEST[ $value['id'] ]
你说你的主题在调试关闭时工作正常,所以这表明你只需要在使用它之前检查这个变量的存在。类似的东西(替换上面的 2 行):
foreach ($options as $value) {
if (isset($_REQUEST[ $value['id'] ])) {
update_option( $value['id'], $_REQUEST[ $value['id'] ] );
}
}
但是,尽管这应该可以防止您的“错误”(它们实际上只是通知),但我不熟悉 wordpress 主题,因此无法确定这是预期行为还是存在问题。
评论
0赞
Towfiq
7/15/2010
非常感谢你,这是有道理的。将线条替换为您的线条。然后将第 149-152 行替换为 # if( isset( $_REQUEST[ $value['id'] ] ) ) { # $optionvar[$value['id']] = $_REQUEST[ $value['id']]; # } else { # $optionvar[$value['id']] = null;现在可以工作,没有一个错误。:D非常感谢您指出错误原因
0赞
MrWhite
7/15/2010
不客气。你说你然后用该代码替换了第 149-152 行。当我查看您的原始脚本(?)时,该代码已经存在,并且实际上给了我一个想法,即它可能在上面导致您的问题的代码中丢失了。如果你不介意我问,这个主题是针对什么版本的 WordPress 的?
评论