Разработка WordPress Theme: Ошибка получения неопределенного индекса - PullRequest
1 голос
/ 14 июля 2010

привет Я разработчик WordPress Theme. я создал тему, которая прекрасно работает в 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 могут помочь.

1 Ответ

2 голосов
/ 14 июля 2010
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, поэтому не могу точно сказать, является ли это ожидаемым поведением или есть что-то, что лежит в основе.

...