2010-07-14 10 views
1

bonjour Je suis un développeur de thèmes wordpress. j'ai créé un thème qui fonctionne très bien dans WP_DEBUG = False mais obtient une erreur d'index non défini quand je mis WP_DEBUG = TrueDéveloppement de thèmes Wordpress: Obtenir une erreur d'index indéterminée

Mon thème a une page d'options, chaque fois que je clique sur Enregistrer je reçois ces erreurs:

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 

Voici mes thèmes functions.php Je ne sais pas ce que je fais mal. J'ai très très peu de connaissances sur php. Espérons que les gars ayant des connaissances en php ou des connaissances de développement de thème wordpress peuvent aider.

Répondre

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

Le morceau de code qui produit cette erreur (ci-dessus) ne vérifie pas si $_REQUEST[ $value['id'] ] existe. Les erreurs que vous obtenez suggèrent que ce n'est pas le cas (vous n'obtiendrez cet avis qu'avec la vérification d'erreur complète activée). D'autres parties de votre code sont en vérifiant l'existence de cette variable avant de l'utiliser (donc elles sont OK) et vous suggérer de faire la même chose ici.

Vous dites que votre thème fonctionne correctement lorsque le débogage est désactivé, cela suggère donc que vous n'avez qu'à vérifier l'existence de cette variable avant de l'utiliser. Quelque chose comme (remplaçant les lignes 2 ci-dessus):

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

Cependant, bien que cela devrait empêcher vos « erreurs » (ils ne sont avis vraiment), je ne suis pas familier avec des thèmes wordpress ne peut donc pas dire Assurez-vous que ce comportement est attendu ou qu'il y a quelque chose sous-jacent qui est en faute.

+0

je vous remercie beaucoup qui a fait sens. remplacé les lignes avec vos lignes. puis remplacées lignes 149-152 avec # si (isset ($ _REQUEST [$ valeur ['id']]) { # $ optionvar [$ valeur ['id']] = $ _REQUEST [$ valeur ['id']]; # } else { # $ optionvar [$ valeur ['id']] = null; Fonctionne maintenant sans une seule erreur. : D Merci beaucoup de souligner la cause de l'erreur – Towfiq

+0

Vous êtes les bienvenus. Vous dites que vous avez ensuite remplacé les lignes 149-152 par le code _that_. Le code de _that_ était déjà là quand j'ai regardé votre script original (?) Et m'a donné l'idée qu'il était probablement absent du code au-dessus de qui était à l'origine de votre problème. Si cela ne vous dérange pas de me demander, quelle est la version de WordPress pour ce thème? – MrWhite

+0

ce code était déjà là. Le thème est pour wordpress 3.0 – Towfiq