Opens in a new tab
11th Aug '23
/
4 comments

Sort Posts by Meta Box Group Sub Field in Bricks

This Pro tutorial provides the steps to order posts in Bricks by the value of a Number-type of sub field that is inside a Meta Box group.

Use case: Sort posts by year.

If the year field were not inside a group, it is straight forward to order by the field value:

But if the field is inside a group like this:

there is no built-in way, that I know of, to set up ordering using the controls that Bricks provides in the editor.

What Bricks does provide however, is a set of excellent filter hooks for developers to modify most aspects of the output programmatically.

We shall use the bricks/query/result filter to intercept the query result by

  • getting the array of post objects in the result
  • getting the array of post IDs
  • sorting the above array using a custom comparison function
  • getting the array of post objects from the above sorted array of post IDs
  • setting the posts property of the result object to the above array of sorted post objects

to arrange the posts in the order of those that have the sub field populated in either ascending or descending order followed by the rest in the default date descending order.

Sample data from our test site:

Event 0:

Event 1: 2026

Event 2: 2023

Event 3: 2022

Event 7: 2040

(rest of the event entries have the field empty)

On the front end before implementing the tutorial:

On the front end after implementing the tutorial - with posts arranged by the Event Year sub field in descending order:

Step 1

Inside a Section's Container, add a Posts element or set up a query loop on a Block element.

Configure the query and set

Order by: Meta numeric value

If you are not editing a template that applies to the event CPT archive, set Post type to Events.

Add the following in child theme's functions.php or a code snippets plugin:

This is a BricksLabs Pro tutorial.

For full access login below or create your BricksLabs Pro account

Get access to all 633 Bricks code tutorials with BricksLabs Pro

Related Tutorials..

Pro
Conditional Rendering Based on Current Date and Time in Bricks when Using Meta Box

Conditional Rendering Based on Current Date and Time in Bricks when Using Meta Box

A Pro member of our site asks: Using bricks + Meta, conditionally show a post listing under 3 different conditions, based on the Current Date…
Pro
Dynamic Accordion in WordPress using Meta Box and Alpine.js

Dynamic Accordion in WordPress using Meta Box and Alpine.js

This Pro tutorial provides the steps to implement an accordion using Alpine.js in WordPress that pulls the values of sub fields of a Meta Box…
Pro
Filtering Query Loop Posts by a Non-empty Custom Field in Bricks

Filtering Query Loop Posts by a Non-empty Custom Field in Bricks

This Pro tutorial shows how we can prefilter the results of a query output by a Bricks query loop to only those for which the…
Categories:
Tags:
Pro
Meta Box Checkbox List Query Type in Bricks

Meta Box Checkbox List Query Type in Bricks

This Pro tutorial provides the steps to add a new query type in Bricks builder for displaying the values of a Checkbox List type of…
Categories:
Pro
Filtering Cloneable Meta Box Group by Sub Field Value in Bricks

Filtering Cloneable Meta Box Group by Sub Field Value in Bricks

This Pro tutorial provides the steps to filter the rows of a Meta Box cloneable group to only those that have a date custom field…
Pro
Conditionally outputting an element in a Query Loop based on date-type custom field

Conditionally outputting an element in a Query Loop based on date-type custom field

This Pro tutorial shows how to output an element in a Bricks' query loop only if the value of a date-type of custom field for…
Categories: