使用WP_QUERY仅显示带有缩略图的帖子

时间:2015-06-20 作者:tslid

我很难用循环只显示具有特色图片的帖子。我的PHP水平是基本的,任何帮助都会非常有用。

基本上这是我的原始代码:

if( have_posts() ) { 
    while( have_posts() ) { 
        the_post();
        get_template_part( \'inc/template-parts/content\', $post_layout );
        // and some other stuff
    }
}
我试过这个帖子的建议-How do I check if a post has a post thumbnail in WP_Query?但没有任何成功。当我实现代码时,所有帖子都会从头版消失。

这是我尝试的代码:

$query = new WP_Query( $thumbs );
$thumbs = array(
    \'meta_query\' => array( \'key\' => \'_thumbnail_id\' ) 
);
if( $query->have_posts() ) { 
    while( $query->have_posts() ) { 
        $query->the_post();
        get_template_part( \'inc/template-parts/content\', $post_layout );
    } 
} 
如有任何建议,将不胜感激!当做

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

你需要定义你的论点before 你把它们传给WP_Query, 之后不会。此外,您的meta_query 应该是数组的数组,而不仅仅是数组

 $query = new WP_Query($thumbs);
 $thumbs = array(
        \'meta_query\' => array(\'key\' => \'_thumbnail_id\') 
 );
应该是这样的

 $thumbs = array(
    \'meta_query\' => array( 
        array(
            \'key\' => \'_thumbnail_id\'
        ) 
    )
 );

 $query = new WP_Query($thumbs);
编辑一些额外的注释

请确保在自定义查询后重置postdata。只需添加wp_reset_postdata(); 在您关闭if 声明,并在关闭while 陈述

我认为这里可能不需要自定义查询。如果我读对了你的问题,你可以简单地使用pre_get_posts 更改主查询。您不应该仅仅因为要更改主查询而使用自定义查询

SO网友:Yaakov Aglamaz

woocommerce产品的另一种方法:

add_filter(\'woocommerce_product_query_meta_query\', \'products_with_thumbs\', 10);

function products_with_thumbs() { return array( \'relation\' => \'OR\', array(\'key\' => \'_thumbnail_id\', \'compare\' => \'>\', \'value\' => \'0\') ); }

结束

相关推荐

从wp-Query获取数据,在循环之外&不更改url

我正在基于自定义分类法在wordpress上进行高级搜索。我已经被困72小时了,所以我希望能得到一些帮助或思考。。。步骤1——在js文件中,查询字符串如下所示:if (jQuery(\'#s\').val() == \'\'){ URL = \"/?genre=\" + genre + \'...other Stuff\' #content\'; }else{ URL = \"/?s=\"+searchQueryString+\"&genre=\" + genre +\'.