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 632 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
Accordion Grid Query Loop in Bricks

Accordion Grid Query Loop in Bricks

How to set up a accordion in Bricks such that the "titles" are arranged in a grid with the full width content opening below.
Categories:
Pro
Posts older than today in Bricks

Posts older than today in Bricks

How to display only posts that were published before today in a query loop.
Categories:
How to create filters with IsotopeJS in Bricks (Part 3): apply multiple filters

How to create filters with IsotopeJS in Bricks (Part 3): apply multiple filters

This tutorial will review how to apply multiple filters to an isotope container using the IsotopeJS library‘s features in Bricks.
Pro
Nav Menus Custom Query Types in Bricks

Nav Menus Custom Query Types in Bricks

Updated on 21 Aug 2024 This Pro tutorial shows how custom query types for each navigation menu can be generated in Bricks. This enables us…
Pro
How to Query WordPress Taxonomy Terms by Hierarchy Level in Bricks

How to Query WordPress Taxonomy Terms by Hierarchy Level in Bricks

How to limit the terms of a Bricks Terms query to only those at a specific level within the taxonomy hierarchy.
Categories:
Pro
Posts Grouped by Post Dates in Bricks

Posts Grouped by Post Dates in Bricks

Setting up query loops for “Post Dates” with an the inner loop displaying all posts published on that day.
Categories: