Pular publicações sem uma miniatura em loop

4

Eu quero pular todas as postagens que não tenham miniaturas. O código ainda não funciona corretamente.

Na verdade, o script não mostra postagens sem uma miniatura - isso é bom, mas no loop a postagem sem miniatura ainda é contada como postagem.

Então, quando eu tenho, por exemplo, 10 posts no meu banco de dados. Eu quero mostrar 5 deles. Mas apenas as postagens com uma miniatura.

<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>
    
por sascha 24.05.2013 / 10:48

1 resposta

4

Você pode tentar adicionar

                'meta_key'     => '_thumbnail_id',

para seus argumentos de entrada:

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

para consultar apenas postagens com miniaturas (por exemplo, imagens em destaque).

ps: em vez desta estrutura:

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

}

você pode, em geral, usar

if ( has_post_thumbnail() ) { 

}

Mas agora você pode pular a parte if -sentence no loop, pois agora você só está buscando postagens com imagens em destaque.

    
por birgire 24.05.2013 / 11:04