17th Nov '25
/
5 comments

Latest Featured Posts First in Bricks Query Loop (No Duplicates)

In the Bricks Facebook group a user asks:

Brain has frozen – need some help please. [ query help… not grid display help ]

I would like to display Bricks builder query results from 5 CPTs (resources). I want the first 2 results of the query to be the newest 2 posts marked as ‘Featured’ (based on a yes/no ACF field) from the different CPTs.

I would like the rest of the results to continue in date order and not repeat the 2 featured posts.

There will always be at least 2 featured posts, but only the two latest should be featured first. The 3rd, 4th, 5th etc featured post should just appear in the normal query loop output.

And the results use a Bricks filter… so having 2 query loops is not an option.

We can use AI to help unfreeze our brains sometimes or at least have it write the code with us after giving directions on the logic 😅.

Here’s the PHP query for this:

// Define your post types - adjust these to match your actual CPT slugs
$post_types = ['resource']; // or ['type1', 'type2', 'type3', 'type4', 'type5']

// Step 1: Get the 2 latest featured posts
$featured_args = [
	'post_type' => $post_types,
	'posts_per_page' => 2,
	'orderby' => 'date',
	'order' => 'DESC',
	'meta_query' => [
		[
			'key' => 'featured', // Replace with your ACF field name
			'value' => '1',
			'compare' => '='
		]
	],
	'fields' => 'ids',
	'no_found_rows' => true,
];

$featured_post_ids = get_posts( $featured_args );

// Step 2: Get all other posts (excluding the 2 featured posts)
$other_args = [
	'post_type' => $post_types,
	'posts_per_page' => 100, // Adjust based on total posts expected
	'orderby' => 'date',
	'order' => 'DESC',
	'fields' => 'ids',
	'no_found_rows' => true,
];

// Exclude the 2 featured posts if found
if ( ! empty( $featured_post_ids ) ) {
	$other_args['post__not_in'] = $featured_post_ids;
}

$other_post_ids = get_posts( $other_args );

// Step 3: Merge arrays - featured posts first, then the rest
$final_post_ids = array_merge( $featured_post_ids, $other_post_ids );

// Return empty result if no posts found
if ( empty( $final_post_ids ) ) {
	return ['post__in' => [0]];
}

// Step 4: Return query args maintaining the order
return [
	'post_type' => $post_types,
	'posts_per_page' => -1, // Show all, or set a number for pagination
	'post__in' => $final_post_ids,
	'orderby' => 'post__in', // Maintains the order we set
	'no_found_rows' => true,
];
Get access to all 633 Bricks code tutorials with BricksLabs Pro

5 comments

  • Thanks for sharing, but this doesn' t work for me. The featured posts are not the first, it just simply put everything in date order. I have almost the same task, with a slight difference. I need 4 featured post from the same acf post type, but with random order on the first 4, and in random order the rest afterwards and it needs to be filterable. I just tried this too, because it's almost the same, but I don't think it works as it should. The AI ​​told me, if I use a meta query, I can't specify an order. I don't kno about that...

  • Thanks for sharing Sridhar.

Leave your comment

 

Related Tutorials..

Pro
Mixed Post Types Grid in Bricks

Mixed Post Types Grid in Bricks

How to set up a mixed post types grid in Bricks, where you can display both standard posts and custom quote cards in alternating positions.
Categories:
Pro
Excluding Duplicate Posts from Query Loops in Bricks

Excluding Duplicate Posts from Query Loops in Bricks

How to ensure that posts are not duplicated when two query loops are used on the same page.
Categories:
Pro
Dynamic Horizontal Posts Accordion in Bricks

Dynamic Horizontal Posts Accordion in Bricks

Creating a horizontal accordion of featured images from posts output by Bricks' query loop.
Categories:
Tags:
Pro
Custom Nested Queries in Bricks

Custom Nested Queries in Bricks

In most of the previous tutorials covering nested query loops in Bricks on this site, we accessed the parent query's looping object in the inner…
Categories:
Posts Related by Current Post’s Terms in Bricks

Posts Related by Current Post’s Terms in Bricks

Showing other posts assigned to the same categories/tags/custom taxonomy terms as the current post.
Categories:
How to List Your Posts Divided by Categories in Bricks

How to List Your Posts Divided by Categories in Bricks

In this tutorial, we'll learn how to display a list of posts divided by each category. The DOM tree Here is how I structured my…
Categories:
Pro
Masonry Accordion Query Loops in Bricks Builder

Masonry Accordion Query Loops in Bricks Builder

Learn how to enable masonry layout for nestable accordions in Bricks builder and use JavaScript to re-layout the masonry on accordions' open and close.
Categories:
Tags:
Pro
Upcoming Events Grouped by ‘Month Year’ in Bricks

Upcoming Events Grouped by ‘Month Year’ in Bricks

A custom query loop type for showing future events based on a date custom field using three nested query loops.