Пропустить сообщения без эскиза в цикле

Я хочу пропустить каждую запись, у которой нет эскизов. Код работает некорректно.

На самом деле сценарий не показывает сообщения без эскиза – это хорошо, но в цикле сообщение без миниатюры по-прежнему считается сообщением.

Поэтому, когда у меня есть, например, 10 сообщений в моей базе данных. Я хочу показать 5 из них. Но только сообщения с миниатюрами.

<ul> <?php $args = array( 'numberposts' => 5, 'orderby' => 'date', 'order' => 'DESC', 'post_type' => 'post', 'post_status' => 'publish' ); $my_posts = get_posts( $args ); global $post; foreach( $my_posts as $post ) : setup_postdata($post); if ( !has_post_thumbnail() ) { continue; } else { ?> <li> <div class="clearfix" > <div class="thumb"><?php the_post_thumbnail('post-image-big'); ?></div> <a href="<?php the_permalink(); ?>" class="title"><?php the_title(); ?></a> <p class="category"><?php the_category(', '); ?></p> </div> </li> <?php } ?> <?php endforeach; ?> </ul> 

Solutions Collecting From Web of "Пропустить сообщения без эскиза в цикле"

Вы можете попробовать добавить

  'meta_key' => '_thumbnail_id', 

к вашим входным аргументам:

 $args = array( 'numberposts' => 5, 'orderby' => 'date', 'order' => 'DESC', 'post_type' => 'post', 'post_status' => 'publish', 'meta_key' => '_thumbnail_id', ); 

запрашивать только сообщения с эскизами (т.е. изображения с изображением).

ps: вместо этой структуры:

 if ( !has_post_thumbnail() ) { continue; } else { } 

вы можете в целом использовать

 if ( has_post_thumbnail() ) { } 

Но теперь вы можете пропустить часть if -entent в цикле, так как теперь вы выбираете только сообщения с признаками.