I have 2 instances of the WP_Query
class, one showing 4 "Featured" posts and another showing "basic" posts.
What I want to do is exclude those 4 latest "Featured" posts from the basic query. I assume it's just a case of adding a post__not_in
variable but how can I get the ID's from the first query and exclude them from the second?
I have 2 instances of the WP_Query
class, one showing 4 "Featured" posts and another showing "basic" posts.
What I want to do is exclude those 4 latest "Featured" posts from the basic query. I assume it's just a case of adding a post__not_in
variable but how can I get the ID's from the first query and exclude them from the second?
While running the loop of the first query, just collect the IDs into an array. Example:
// define your first query's arguments
$args1 = array(
... your first query args
);
$query1 = new WP_Query($args1);
while ( $query1->have_posts() ): $query1->the_post();
// this is your loop. Do whatever you want here
// add this in the loop to collect the post IDs
$exclude_posts[] = $post->ID;
endwhile;
// define your second query's arguments
$args2 = array(
'post__not_in' => $exclude_posts,
... rest of your parameters
);
$query2 = new WP_Query($args2);
while ( $query2->have_posts() ): $query2->the_post();
// this is your second loop. Do whatever you want here
endwhile;
wp_reset_postdata();