Gibt es eine Möglichkeit, das erste vorgestellte Bild in einer Schleife zu ziehen und nicht alle anderen vorgestellten Bilder?

Ich habe eine Schleife, die die ersten drei Beiträge einer Kategorie zieht. Ich möchte das vorgestellte Bild des ersten Posts verwenden, der für den Hintergrund des Abschnitts gezogen wurde. Die Titel und Links zu diesen Posts werden angezeigt.

Ist es möglich, das erste Bild zu ziehen, ohne alle anderen Bilder von Posts zu ziehen, die in der Schleife gezogen wurden?

Hier ist die aktuelle Schleife:

 'academy-awards', 'posts_per_page' => 3 ) ); if ($cinemasight_header_query->have_posts()) : while($cinemasight_header_query->have_posts()) : $cinemasight_header_query->the_post();?>  <a href="https://wordpress.stackexchange.com/questions/235683/is-there-a-way-to-pull-the-first-featured-image-in-a-loop-and-not-all-other-feat/">

BEARBEITEN (8/13/16, 8:56 AM CST)

Überarbeitet für die letzten Korrekturen.

 
ACADEMY AWARDS
'academy-awards', 'posts_per_page' => 3 ) ); if ($cinemasight_header_query->have_posts()) : while($cinemasight_header_query->have_posts()) : $cinemasight_header_query->the_post(); if( 0 == $cinemasight_header_query->current_post ) : $thumbnail_id = get_post_thumbnail_id(); $image_src = wp_get_attachment_image_src( $thumbnail_id );?> <div class="Categories_Upper_Left" style="background-image: url( '') ;"> <a href="https://wordpress.stackexchange.com/questions/235683/is-there-a-way-to-pull-the-first-featured-image-in-a-loop-and-not-all-other-feat/">
<a href="https://wordpress.stackexchange.com/questions/235683/is-there-a-way-to-pull-the-first-featured-image-in-a-loop-and-not-all-other-feat/">

Solutions Collecting From Web of "Gibt es eine Möglichkeit, das erste vorgestellte Bild in einer Schleife zu ziehen und nicht alle anderen vorgestellten Bilder?"

Ich glaube, Sie beziehen sich auf diese Antwort

Sie könnten den Index der aktuellen Schleife überprüfen und get_the_post_thumbnail , um das image-Tag oder the_post_thumbnail zu erhalten, um es zu the_post_thumbnail .

Sie können die Eigenschaft $current_post , um den aktuellen Index $current_post und nur beim ersten Auftreten anzuzeigen. Hier ist die modifizierte Schleife, um dies zu erreichen.

 < ?php $cinemasight_header_query = new WP_Query( array( 'category_name' => 'academy-awards', 'posts_per_page' => 3 ) ); if ($cinemasight_header_query->have_posts()) : while($cinemasight_header_query->have_posts()) : $cinemasight_header_query->the_post(); if( 0 == $cinemasight_header_query->current_post ) : // This will print on first index only ?>   < ?php the_post_thumbnail(); ?> < ?php the_title(); ?>
< ?php continue; // skip the rest of this loop because we got what we needed endif; // End if for first index ?> < ?php the_title(); ?>
< ?php endwhile; endif; // End loop wp_reset_postdata(); ?>

In meinem Kommentar unten verwendete ich get_the_post_thumbnail (), das das -Tag zurückgibt, ohne es zu drucken.

the_post_thumbnail () gibt die Ausgabe zurück. Wenn Sie eine benutzerdefinierte Bildgröße haben, können Sie sie als Argument mit dieser function übergeben, um sie abzurufen. Im Wesentlichen ist diese function ein Wrapper für get_the_post_thumbnail() und übergibt post-thumbnail als Standardbildgröße, wenn keine angegeben ist.

Wählen Sie, welches Ihnen besser steht

BEARBEITEN

Aus irgendeinem Grund habe ich übersehen, dass Sie das Bild als Hintergrund verwenden wollten. Sie müssen also nur die src des Bildes und nicht das gesamte -Tag

Ändern Sie einfach die Bedingung für den ersten Index wie folgt

  if( 0 == $cinemasight_header_query->current_post ) : // This will print on first index only $thumbnail_id = get_post_thumbnail_id(); $image_src = wp_get_attachment_image_src( $thumbnail_id ); ?> 
< ?php echo the_title(); ?>
< ?php continue; // skip the rest of this loop because we got what we needed endif; // End if for first index ?>

wp_get_attachment_image_src () liefert ein Array von

  • [0]: Bild-URL
  • [1]: Breite
  • [2]: Höhe
  • [3]: is_intermediate
  • false, wenn kein Bild gefunden wird

und Sie können auch die Bildgröße als zweiten Parameter an die function übergeben

Am saubersten ist es mit zwei getrennten Schleifen. Führen Sie eine erste Schleife für nur ein Element (Miniaturansicht enthalten) und dann eine zweite Schleife für die anderen Elemente mit 'offset' => 1 (Miniaturbilder nicht enthalten).

 < ?php $cinemasight_header_query = new WP_Query( array( 'category_name' => 'academy-awards', 'posts_per_page' => 3 ) ); if ($cinemasight_header_query->have_posts()) : $counter = 0; while($cinemasight_header_query->have_posts()) : $counter++; $cinemasight_header_query->the_post(); if ( $counter == 1 ) { if ( has_post_thumbnail() ) { the_post_thumbnail( 'image_size', array( 'class' => 'img-responsive' ) ); } } ?>  < ?php the_title(); ?>
< ?php endwhile; endif; wp_reset_postdata();?>
 < ?php get_header(); if (have_posts()) : $first = true; // set a flag to capture the first post while (have_posts()) : the_post(); the_content(); if ($first) { // if flag is true $thumb_id = get_post_thumbnail_id(); $first_image = wp_get_attachment_image_src($thumb_id,'thumbnail-size', true); // save the featured image to a variable $first = false; // switch the flag to false for remaining posts } endwhile; endif; ?>  < ?php get_sidebar(); get_footer(); ?>