Exibir somente postagens com miniatura usando WP_Query

2

Estou tendo dificuldades mostrando apenas postagens que exibiram imagens usando o loop. Meu nível de PHP é básico e qualquer ajuda será realmente útil.

Então basicamente este é o meu código original:

if( have_posts() ) { 
    while( have_posts() ) { 
        the_post();
        get_template_part( 'inc/template-parts/content', $post_layout );
        // and some other stuff
    }
}

Eu tentei o conselho deste tópico - Como eu verifico se uma postagem tem uma miniatura de postagem em WP_Query ? Mas sem sucesso algum. Quando eu implementar o código, todos os posts desaparecem da primeira página.

Este é o código que tentei:

$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 );
    } 
} 

Qualquer conselho será apreciado! Atenciosamente

    
por tslid 20.06.2015 / 12:09

1 resposta

8

Você precisa definir seus argumentos antes de transmiti-los para WP_Query , não depois. Além disso, seu meta_query deve ser uma matriz de uma matriz, não apenas uma matriz

Isso

 $query = new WP_Query($thumbs);
 $thumbs = array(
        'meta_query' => array('key' => '_thumbnail_id') 
 );

deve se parecer com isso

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

 $query = new WP_Query($thumbs);

EDITAR

Apenas algumas notas extras

  • Certifique-se de redefinir postdata após uma consulta personalizada. Basta adicionar wp_reset_postdata(); antes de fechar sua instrução if e depois de fechar sua declaração while

  • Acredito que uma consulta personalizada pode não ser necessária aqui. Se eu ler sua pergunta corretamente, você pode simplesmente usar pre_get_posts para alterar a consulta principal. Você não deve usar uma consulta personalizada só porque deseja alterar a consulta principal

por Pieter Goosen 20.06.2015 / 12:25