Get latest 3 posts from multiple custom post types in one query

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
 
$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;
 
?>

Revisions: (Show)

Tags: , ,

No comments yet.

Leave a Reply