Invalid argument supplied for foreach()

Résolu
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

  1. 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
  2. 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 ?
    1. Modérateur
      Il manque une parenthèse
      if ( ! empty( $this->supports ) && (is_array( $this->supports) || ( is_object( $this->supports)) )) {
      
  3. Modérateur
    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)) ) {