Aparentemente o que determina se um post pode ter uma galeria ou não é a quantidade de imagens associadas ao post, se o post tiver mais que uma imagem ele pode ter uma galeria.
Levando isso em conta vc pode usar esta função para determinar isso e dentro do loop fazer com que o post seja exibido caso a função retorne true e não exibir o post caso ela retorne false.
function wo_has_post_gallery(){
global $post, $wpdb;
$attachments = intval( $wpdb->get_var( $wpdb->prepare( "SELECT count(*) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent = %d", $post->ID ) ) );
if ( empty($attachments) && count($attachments) <= 2 ) {
return false;
} else {
return true;
}
}
Mas acho essa verificação totalmente errada, porque um post pode ter várias imagens e isso não tem nada haver com a galeria.
Então usando a mesma lógica da função anterior vc pode fazer a verificação se no post tem o shortcode gallery com a seguinte função
function wo_has_post_gallery_exists(){
global $post;
if ( stripos( $post->post_content, '[gallery' ) ){
return true;
} else {
return false;
}
}
Ambas as funções devem ser inseridas no arquivo functions.php do tema e para usá-las como foi sugerida vc pode seguir o seguinte exemplo.
<?php
$args = array( 'numberposts' => -1, 'cat' => 20, 'paged' => (get_query_var('paged')), 'posts_per_page' => 10 );
query_posts($args);
if (have_posts()): while (have_posts()) : the_post(); ?>
<?php if( wo_has_post_gallery_exists() ) { ?>
<div class="post">
<?php the_tutle('<h2>', '</h2>'); ?>
<?php the_content(); ?>
</div>
<?php } ?>
<?php endwhile; endif; ?>
Assim só serão exibidos posts que sejam da categoria 20 e que tenham o shortcode [gallery] no corpo do post.
Obs: O que tive como testar em meu tema atual de trabalho eu testei que foram as funções e a verificação dentro do loop, já o loop apresentado por último eu não testei, mas em teoria se tiver alguma coisa errada é só no query_posts que vc pode personalizar a seu gosto.