Como verificar todos os itens em um loop têm a miniatura do post?

Atualmente eu tenho o seguinte ciclo:

 'show_sale', 'post_status' => 'publish', 'posts_per_page' => 3, )); $done_image = false; ?> 
  • <a href="https://wordpress.stackexchange.com//questions/46213/how-to-check-all-items-in-a-loop-have-post-thumbnail/">
  • <a href="https://wordpress.stackexchange.com//questions/46213/how-to-check-all-items-in-a-loop-have-post-thumbnail/">

Ele mostrará um item de lista ‘ativo’ se a publicação contiver a imagem em destaque, outros apenas mostram o título em um item da lista normal.

O que eu preciso adicionar é um cheque que, se nenhuma das postagens tiverem uma imagem de recurso, insira um item de lista na parte superior da lista não ordenada.

Eu não consigo entender minha cabeça como dizer ” se nenhum deles tiver uma miniatura do post, então mostre isso, faça o que está acima

Qualquer ajuda seria muito apreciada!

Solutions Collecting From Web of "Como verificar todos os itens em um loop têm a miniatura do post?"

Antes de fazer sua saída, faça algo como isto:

 $no_thumbnails = true; foreach( $shows_sales as $p ) { if( has_post_thumbnail( $p->ID ) ) $no_thumbnails = false; } 

Então, em seu loop, você pode fazer algo como isto:

 < ?php if( $no_thumbnails === true ) : ?>  < ?php endif; ?> 

Se você precisar adicionar o item ao início da lista, então você precisará montar o HTML antes de fazê-lo ecoar. Algo assim:

 < ?php $shows_sales = new WP_Query(array( 'post_type' => 'show_sale', 'post_status' => 'publish', 'posts_per_page' => 3 )); $found_post_thumbnail = false; // Assemble the HTML for the list items first $list_items = '' if ( $shows_sales->have_posts() ) { while ( $shows_sales->have_posts() ) { $shows_sales->the_post(); if ( has_post_thumbnail() ) { $list_items .= '
  • ' . get_the_post_thumbnail( 'homepage' ) . '
  • '; $found_post_thumbnail = true; } else { $list_items .= '
  • ' . get_the_title() . '
  • '; } } } if ( !$found_post_thumbnail ) { $list_items = '
  • THIS IS MY EXTRA LIST ITEM
  • ' . $list_items; } echo $list_items; ?>

    Eu mudei isso para uma solicitação WP_Query vez de get_posts() plus setup_postdata()WP_Query é um pouco mais de um modo padronizado (e ninho seguro) para fazê-lo.