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
CPT Posts Grouped by Custom Taxonomy Terms in Bricks

CPT Posts Grouped by Custom Taxonomy Terms in Bricks

The steps to set up a Service Category terms loop with an inner Service posts loop in Bricks without writing code.
Categories:
Pro
6 Random Featured Posts in Alphabetical Order in Bricks

6 Random Featured Posts in Alphabetical Order in Bricks

How to output x number of random posts with a specific meta value set, in Alphabetical order.
Categories:
Pro
Dynamic Remaining Posts Count for Load more Button in Bricks

Dynamic Remaining Posts Count for Load more Button in Bricks

A user asked in the Bricks Facebook group: I have a loop of a CPT, showing 10 in a total of 16 posts and a…
Pro
“My Favorites” in Bricks

“My Favorites” in Bricks

This Pro tutorial provides the steps to set up and use My Favorites in Bricks Builder.
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:
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
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: