Publicações duplicadas no meu ciclo personalizado

Oi, tenho postagem personalizada e estou tentando imprimir dados de loop no loop foreach. mas uma publicação mostra 4 vezes.

 'service_slider', 'posts_per_page' =>5 ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); the_title(); $thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ) ); foreach ($thumbnail as $thumb){ echo '
'; ?> <img class="thumbnail zoom" src="https://wordpress.stackexchange.com//questions/280435/duplicate-posts-in-my-custom-loop/" > <?php echo '
'; } endwhile; ?>

Solutions Collecting From Web of "Publicações duplicadas no meu ciclo personalizado"

Você está tentando percorrer a miniatura, o que não faz sentido:

 foreach ($thumbnail as $thumb){ 

E, então, dentro do loop, você está se referindo a $thumbnail novamente, mesmo assim:

  

wp_get_attachment_image_src() retorna uma matriz que se parece com isto:

 array( 0 => 'http://website.com/path/to/image.jpg', // URL 1 => 150, // Width 2 => 150, // Height 3 => true // Is a resized version? ); 

Então, quando você tenta encaminhar isso, você está fazendo um loop entre esses 4 valores. Mas, como você usa $thumbnail[0] no loop, apenas vai ecoar esse primeiro valor 4 vezes.

E uma vez que você está fazendo isso tudo dentro while ( $loop->have_posts() ) : $loop->the_post(); Você vai repetir o URL da imagem destacada 4 vezes para cada publicação.

Esta seria a abordagem mais simples:

 $args = array( 'post_type' => 'service_slider', 'posts_per_page' => 5 ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); echo '
'; echo wp_get_attachment_image( get_post_thumbnail_id(), 'thumbnail', false, array( 'class' => 'thumbnail zoom' ) ); echo '
'; endwhile; wp_reset_postdata();

while ( $loop->have_posts() ) : $loop->the_post(); está percorrendo as postagens. Você não precisará de um foreach . Então, dentro desse loop, eu emiti o item div e a imagem em destaque da publicação.

Observe que eu usei wp_get_attachment_image() , que exibe a tag de preenchimento da imagem para a miniatura da publicação atual (porque eu passei ela get_post_thumbnail_id() . O 4º parâmetro permite que você passe uma class de imagem para usar. Esta function também puxa automaticamente o Texto alternativo, o que é bom para a acessibilidade.