WordPress循环 - 跳过没有缩略图的帖子

时间:2013-05-24 08:26:22

标签: wordpress

我想跳过每个没有缩略图的帖子。代码还没有正常工作。

实际上,脚本没有显示没有缩略图的帖子 - 这很好,但在循环中没有缩略图的帖子仍被计为帖子。

所以当我在我的wordpress数据库中有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>

1 个答案:

答案 0 :(得分:1)

尝试

$args = array(  'numberposts'  => 5,  
                'orderby'      => 'date',  
                'order'        => 'DESC',
                'post_type'    => 'post',
                'post_status'  => 'publish' ,
                'meta_query' => array(
                    array(
                        'key' => '_thumbnail_id',
                        'compare' => '!=',
                        'value' => ''
                    )
                )
            );

或者如果检查空字符串对你不起作用

$args = array(  'numberposts'  => 5,  
                'orderby'      => 'date',  
                'order'        => 'DESC',
                'post_type'    => 'post',
                'post_status'  => 'publish' ,
                'meta_query' => array(
                    array(
                        'key' => '_thumbnail_id',
                        'compare' => '!=',
                        'value' => null
                    )
                )
            );