1

你好我是一个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

这是我的主题functions.php 我不知道我做错了什么。我对php知之甚少。希望有 php 知识或 wordpress 主题开发知识的人能提供帮助。

4

1 回答 1

2
146. foreach ($options as $value) {
147.   update_option( $value['id'], $_REQUEST[ $value['id'] ] ); }

产生此错误的代码(上图)并未检查是否$_REQUEST[ $value['id'] ]存在。您收到的错误表明它没有(您只会在启用完整错误检查的情况下收到此通知)。你的代码的其他部分在使用它之前检查这个变量的存在(所以它们没问题),并建议你应该在这里做同样的事情。

你说当调试关闭时你的主题工作正常,所以这表明你只需要在使用它之前检查这个变量的存在。类似的东西(替换上面的两行):

foreach ($options as $value) {
  if (isset($_REQUEST[ $value['id'] ])) {
    update_option( $value['id'], $_REQUEST[ $value['id'] ] );
  }
}

但是,尽管这应该可以防止您的“错误”(它们实际上只是通知),但我不熟悉 wordpress 主题,因此无法确定这是否是预期的行为,或者是否存在潜在的错误。

于 2010-07-14T19:33:23.290 回答