此方法使用计数器和1个查询。每个帖子类型只能显示3篇帖子。
$args = array(
\'post_type\' => array( \'type1\', \'type2\', \'type3\' ),
\'posts_per_page\' => -1
);
$myquery = new WP_Query( $args );
$type1 = 0; $type2 = 0; $type3 = 0; $count = 0;
while ( $myquery->have_posts() ) : $myquery->the_post();
if ( $post->post_type == \'type1\' ) $type1++;
if ( $post->post_type == \'type1\' && $type1 > 3 ) continue;
if ( $post->post_type == \'type2\' ) $type2++;
if ( $post->post_type == \'type2\' && $type2 > 3 ) continue;
if ( $post->post_type == \'type3\' ) $type3++;
if ( $post->post_type == \'type3\' && $type3 > 3 ) continue;
$count++; if ( $count > 9 ) continue;
// Do Stuff
endwhile;
如果您有大量的帖子,这可能不是最好的解决方案,因为它将遍历所有帖子,如果给定帖子类型的计数大于3,它将返回到循环的开头。