Le code lit une case d’un tableau, par exemple $reglages[‘couleur’], alors que la variable ne contient pas de tableau : elle est vide (null), vaut false ou un nombre. PHP renvoie une valeur vide et continue : le site fonctionne, mais l’élément concerné peut manquer, et l’avertissement s’affiche si le site montre ses erreurs. Apparu avec PHP 7.4, il est devenu plus visible avec PHP 8.
Pourquoi cette erreur apparaît
- Une fonction WordPress a renvoyé false faute de résultat : image supprimée de la médiathèque, article introuvable, réglage absent.
- Une extension lit un réglage qui n’a jamais été enregistré, ou qui a été effacé lors d’une migration.
- Une donnée sérialisée abîmée, par exemple après un remplacement d’adresse fait directement dans la base, ne peut plus être relue et vaut false.
- Une réponse attendue d’un service externe (API, flux) est arrivée vide ou illisible.
Comment corriger le problème
Mettre à jour l’élément cité
Le chemin du message mène au thème ou à l’extension qui lit la case vide. Installez sa dernière version : ce type d’avertissement est souvent corrigé dans les versions récentes.
Vérifier ce que la page devait afficher
Regardez l’endroit de la page où le message apparaît : un logo, une image mise en avant, une icône de réseau social. Une image supprimée de la médiathèque ou un réglage du thème resté vide est souvent en cause, et le remplir suffit à faire taire l’avertissement.
Masquer l’affichage sans perdre l’information
Remplacez la ligne WP_DEBUG de wp-config.php par ces quatre lignes : les erreurs seront notées dans wp-content/debug.log, le journal de débogage, au lieu d’apparaître à l’écran. Ce fichier peut être lu depuis le web : repassez WP_DEBUG à false une fois l’enquête terminée.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Tester la valeur avant de lire une case
Dans votre propre code, vérifiez que la variable est bien un tableau avant d’y lire une case : is_array() ou l’opérateur ?? suffisent. Exemple avec wp_get_attachment_image_src(), qui renvoie false quand l’image n’existe plus.
$image = wp_get_attachment_image_src( $image_id, 'large' );
// Avant : $url = $image[0];
$url = is_array( $image ) ? $image[0] : '';
Copiez wp-config.php avant d’y changer les réglages de débogage, et ne laissez pas l’affichage des erreurs actif sur un site public.
Un autre message d'erreur ? Collez-le dans le décodeur : il le reconnaît et vous oriente vers la bonne fiche.
Ouvrir le décodeur