Invalid argument supplied for foreach() [Résolu]

Signaler
-
Messages postés
87
Date d'inscription
lundi 31 décembre 2007
Statut
Membre
Dernière intervention
5 août 2020
-
Bonjour,

Je viens de mettre à jour mon wordpress, et j'ai ce message qui s'affiche.
Je n'y connais absolument rien en PHP, mais l'erreur ce situe apparemment sur cette ligne :
foreach ( $this->supports as $feature => $args ) {

Voici tout ce qui est affiché autour de cette ligne
 /**


* Sets the features support for the post type.
  *


* @since 4.6.0

*/
 public function add_supports() {
  if ( ! empty( $this->supports ) ) {
   foreach ( $this->supports as $feature => $args ) {
    if ( is_array( $args ) ) {
     add_post_type_support( $this->name, $feature, $args );
    } else {
     add_post_type_support( $this->name, $args );
    }
   }
   unset( $this->supports );
  } elseif ( false !== $this->supports ) {
   // Add default features.
   add_post_type_support( $this->name, array( 'title', 'editor' ) );
  }
 }


EDIT : Ajout des balises de code

Auriez-vous svp des pistes pour m'aider à résoudre le problème ?
Merci beaucoup d'avance


Configuration: Windows / Firefox 56.0

5 réponses

Messages postés
30284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
3 013
Bonjour,

Tu peux essayer de modifier la ligne
if ( ! empty( $this->supports ) ) {

par
if ( ! empty( $this->supports ) && (is_array( $this->supports) || ( is_object( $this->supports)) ) {

Messages postés
87
Date d'inscription
lundi 31 décembre 2007
Statut
Membre
Dernière intervention
5 août 2020

Merci Jordane,
Mais oups... ce n'est pas mieux, il me dit maintenant
syntax error, unexpected 'foreach' (T_FOREACH)
et plus rien ne s'affiche sur le site alors qu'il y avait juste une barre d'erreur et plein de blanc puis l'affichage normal

Une autre idée ?
Messages postés
30284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
3 013
Il manque une parenthèse
if ( ! empty( $this->supports ) && (is_array( $this->supports) || ( is_object( $this->supports)) )) {
Messages postés
87
Date d'inscription
lundi 31 décembre 2007
Statut
Membre
Dernière intervention
5 août 2020

Oh yes !!!! tu es un ange merci !!!!
ça marche !!!!
Messages postés
87
Date d'inscription
lundi 31 décembre 2007
Statut
Membre
Dernière intervention
5 août 2020

Je rouvre le sujet, car une mise à jour wp s'est visiblement mise toute seule sans que je m'en sois rendu compte et le problème est revenu. J'ai pu le réparer sans problème, mais le site est resté inaccessible pendant un certain temps sans que je m'en aperçoive.
Est-ce qu'il y aurait un moyen de mettre ce code sur le thème enfant ? Si oui quelqu'un de très gentil voudrait-il bien m'expliquer la marche à suivre ?
Merci beaucoup d'avance
Messages postés
30284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
3 013
Bonjour,
Pour ré-ouvrir une discussion... il faut lui retirer le statut "résolu".
Mais je te conseille plutôt de créer une nouvelle discussion dans le forum dédié à WORDPRESS.
https://forums.commentcamarche.net/forum/wordpress-161
Messages postés
87
Date d'inscription
lundi 31 décembre 2007
Statut
Membre
Dernière intervention
5 août 2020

Merci beaucoup pour la réponse Jordane, je vais le faire :-)