1

こんにちは、ワードプレスのテーマ開発者です。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 の知識やワードプレスのテーマ開発の知識を持っている人が助けてくれることを願っています。

4

1 に答える 1

2
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'] ] );
  }
}

ただし、これで「エラー」を防ぐことができますが(実際には通知のみです)、ワードプレスのテーマに慣れていないため、これが予期される動作であるかどうか、または根本的な問題があるかどうかはわかりません。

于 2010-07-14T19:33:23.290 に答える