web-dev-qa-db-fra.com

obtenir une vignette de publication dans la boucle provoque une erreur

J'ai ce code que j'ai utilisé pour extraire des images de mes messages:

  while ( $query->have_posts() ) : $query->the_post();

    if (has_post_thumbnail()){
      $nevent .= '<a href="'.get_permalink().'">'.get_the_post_thumbnail($post_ID,'full', array( 'class' => 'greenbg' ) ).'</a>';
    } else {
      $nevent .= '<img class="wp-post-image" src="'. get_stylesheet_directory_uri().'/images/node-summit-event-logo.png" alt="'. get_the_title().'"/>';
    }
    $nevent .= '<h2><a href="'.get_permalink().'">'.get_the_title().'</a></h2>';    

    $i++;
  endwhile;

Le code fonctionne et affiche mon image et les titres de publication, mais je reçois une erreur:

Remarque: Variable non définie: post_ID dans /home/nodesummit/public_html/wp-content/plugins/rt-cpts/events.php à la ligne 671

Une gentille personne peut-elle me dire ce qui me manque?

1
rudtek

Le get_the_post_thumbnail() utilise en interne le global $post pour obtenir l'identifiant de publication. C'est pourquoi le code fonctionne pendant que vous obtenez des erreurs. Il n'est pas nécessaire de transmettre l'ID de publication à cette fonction. Vous pouvez donc lui transmettre null.

Mais l'erreur est due au fait qu'il n'y a pas de variable $post_ID définie. Si vous souhaitez obtenir l'ID de l'article, vous devez soit utiliser global $post; $post->ID;, soit utiliser plutôt get_the_ID().

1
Jack Johansson