« Cannot use object of type WP_Error as array » : erreur fatale sur WordPress

Fiche du décodeur d'erreurs, mise à jour le 12 octobre 2026

BloquantErreurs PHP
Le message affiché
Fatal error: Uncaught Error: Cannot use object of type WP_Error as array
Autres formulations du même message 2
  • PHP Fatal error: Uncaught Error: Cannot use object of type WP_Error as array
  • Fatal error: Cannot use object of type WP_Error as array

Quand une opération échoue, beaucoup de fonctions de WordPress ne renvoient pas le résultat attendu mais un objet WP_Error : une sorte d’enveloppe qui contient le motif de l’échec. Le code l’a lu comme un tableau sans vérifier, et PHP s’arrête. La vraie panne se trouve donc en amont : un service extérieur qui ne répond pas, un contenu impossible à créer, un fichier refusé.

Pourquoi cette erreur apparaît

  • Un appel à un service extérieur a échoué (réseau social, avis clients, météo, vérification de licence) : délai dépassé, certificat refusé, adresse injoignable.
  • L’hébergement bloque les connexions sortantes du serveur, ou ne parvient plus à résoudre le nom de domaine du service appelé.
  • Une fonction de WordPress n’a pas pu faire ce qu’on lui demandait : catégorie déjà existante pour wp_insert_term(), taxonomie inconnue pour get_terms(), fichier refusé au téléversement.
  • L’extension ou le thème n’est plus maintenu et ne prévoit pas le cas où l’opération échoue.

Comment corriger le problème

Repérer ce que faisait le code

Le chemin du message désigne l’extension ou le thème. Demandez-vous ce qu’il fait à cet instant : afficher un flux Instagram, des avis, la météo, vérifier une licence, importer des annonces. Le plus souvent, c’est cet échange avec un service extérieur qui a échoué.

Couper la fonction en cause

Désactivez l’extension, ou renommez son dossier par FTP si l’administration est inaccessible : ses fichiers et ses réglages restent en place. Si le plantage vient d’un widget ou d’un bloc du thème, retirez-le de la page le temps de l’enquête. Vérifiez ensuite le compte connecté, la clé d’API et la licence dans ses réglages.

Tester les connexions sortantes

Dans Outils > Santé du site, un test en échec sur la communication avec WordPress.org signale un serveur qui ne joint plus l’extérieur. Dans ce cas, seul le support de l’hébergeur peut vérifier son pare-feu et sa résolution DNS. Une mention « cURL error » dans le journal précise souvent la nature du blocage.

Mettre à jour ou alerter l’éditeur

Installez la dernière version de l’extension ou du thème : beaucoup d’éditeurs ont ajouté depuis le contrôle qui manquait. À défaut, transmettez-leur le message complet en précisant à quel moment il survient.

Tester le résultat avec is_wp_error()

Dans votre propre code, vérifiez chaque retour avant de le lire et inscrivez le motif de l’échec dans le journal : vous saurez enfin ce qui coince. Préférez aussi wp_remote_retrieve_body() à une lecture directe de $reponse[‘body’].

$reponse = wp_remote_get( $url, array( 'timeout' => 15 ) );

if ( is_wp_error( $reponse ) ) {
	error_log( 'Appel API en échec : ' . $reponse->get_error_message() );
	return array();
}

$donnees = json_decode( wp_remote_retrieve_body( $reponse ), true );

Sauvegardez le site avant toute retouche de code, et renommez le dossier de l’extension fautive plutôt que de la supprimer : vous pourrez la remettre en service telle quelle.

Le guide completErreur critique WordPress : la méthode pour sortir de l’écran blanc sans paniquer 💥

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