Quero consultar 6 postagens, mas apenas aquelas que têm uma imagem em destaque anexada. Estou usando o meta_key
método para isso com WP_Query
como tal:
$args = array(
'post_type' => 'post',
'meta_key' => '_thumbnail_id',
'post_count' => 6 );
$query = new WP_Query($args);
Seguido por
<?php while($query->have_posts()) : $query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_post_thumbnail('thumbnail'); ?>
<?php endwhile; ?>
Isso não parece funcionar. A consulta está retornando mais de 6 postagens e também aquelas que não têm uma imagem em destaque. Alguma idéia do que eu tenho de errado aqui?
@chip: var_dump($query);
fornece um grande resultado, então eu o publiquei em um pastebin
wp-query
post-thumbnails
harryg
fonte
fonte
var_dump( $query )
?Respostas:
Ao executar o importador, você deve marcar a caixa de seleção para baixar e importar todas as mídias / anexos.
Caso contrário, as postagens ainda terão uma imagem em destaque definida, mas o anexo a que se referem será inválido e qualquer tentativa de chamada
the_post_thumbnail
falhará. Usando seu código, você obteria apenas o título da postagem e nenhuma miniatura. Isso daria a impressão de que as postagens que não têm imagem em destaque estão sendo puxadas. Não é o caso, elas têm uma imagem em destaque, apenas não está disponível devido ao erro que você cometeu ao importar.Exclua suas postagens e reimporte usando as configurações corretas.
Também para demonstrar o argumento, você não fez nenhuma tentativa de verificar as postagens, sempre verifique, por exemplo:
Se você não tiver marcado a caixa de seleção, obterá imagens dizendo que elas têm uma imagem em destaque, mas nenhuma imagem é mostrada
fonte
the_post_thumbnail
com umahas_thumbnail
chamada e adicione um caso outros para que você definitivamente inequivocamente sabe que o posto não tem uma imagem caracterizadaNo WordPress 3.5, os Meta Query Parameters suportam
EXISTS
eNOT EXISTS
como operadores de comparação. No caso de você usá-las, você pode omitir avalue
parte da meta consulta. Tente os seguintes argumentos para sua consulta:fonte
NOT EXISTS
for utilizado.