Opens in a new tab
20th Nov '25
/
0 comments

Upcoming Events in Bricks Grouped by ‘Month Year’ with Frontend Filtering by Event Type

This is a newer version of the earlier Upcoming Events Grouped by 'Month Year' in Bricks tutorial with these improvements:

  • two nested queries instead of three for the events grouped by month years
  • frontend filtering by event type (a custom taxonomy) using custom JavaScript

Step 1

Create event CPT and corresponding event-type taxonomy with a plugin like ACF.

Create a field group for your CPT having an event-date custom field of Date Picker (or Date and Time Picker).

For Date Picker type field, set return format to Y-m-dFor Date Time Picker type field, set return format to Y-m-d H:i:s

Publish some event posts having event type and event date for each.

Step 2

Let's

  • add a new "Event Month-Year" query loop type
  • create the callback function for the above query loop type
    • get all future events
    • loop through these events and organizes them into groups based on their month and year (e.g., "January 2025", "February 2025")
    • sort chronologically: ensure the months appear in the correct order (oldest month → newest month)
    • return an array having display (human-readable month-year label like January 2025) and posts (array of post IDs belonging to that month) keys
  • add a Bricks helper function to navigate nested query loops
  • create a helper function to get post IDs for the inner loop
    • bl_get_month_year_post_ids(): retrieves the post IDs from the parent month-year group
    • used in the inner post loop to only show events from the current month being looped
  • create a display helper function
    • bl_get_month_year_display(): return the formatted month-year string like "January 2025"
    • used in the Heading element to display the month-year title
  • create a taxonomy helper function
    • bl_get_event_types(): return space-separated taxonomy term slugs for an event
    • used as the value for data-event-type attribute on each event item

Add the following in child theme's functions.php (w/o the opening PHP tag) 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
Categories and SubCategories Query Loop Tabs in Bricks

Categories and SubCategories Query Loop Tabs in Bricks

Learn how to show top-level parent categories as tab titles and the corresponding subcategories as tab contents using Bricks nested queries.
Categories:
Displaying SureCart Featured Products & Products Collections with a Query Loop

Displaying SureCart Featured Products & Products Collections with a Query Loop

We walk through how to use a query loop to display SureCart products, featured products & collections.
Categories:
Pro
Related Posts by Taxonomy in Bricks

Related Posts by Taxonomy in Bricks

In the previous Posts Related by Current Post's Terms in Bricks tutorial, we showed how posts related to the current single post that have the…
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
Query Loop Index in Bricks

Query Loop Index in Bricks

This Pro tutorial provides the code for getting the index of each post in Bricks' query loops. This can be used for either outputting the…
Categories:
Pro
Ordering Posts by Terms in Bricks

Ordering Posts by Terms in Bricks

How to output upcoming events at the top and past events below in a single query loop in Bricks.
Categories:
Loop Item ID and Loop Item Object in Bricks

Loop Item ID and Loop Item Object in Bricks

If you are working on a Bricks site with specific requirements, chances are you need to grab the ID and/or object of the current item…
Categories: