Until August, letting visitors search or filter a Divi blog on the front end meant a third-party plugin, a shortcode, or hand-written AJAX. Divi 5's new Post Filter module does it natively. Because it sits on top of the Loop Builder, it works with any looped element — a blog, a portfolio, a team directory, a WooCommerce product grid — and it filters without a page reload if you want it to. This guide walks through the exact build, setting by setting. It's the same approach I use on client sites as a Divi 5 specialist.
The Post Filter module does not create content. It narrows what an existing Loop returns. If the element you want to filter isn't a Loop yet, the module shows a "Select a Loop" message and does nothing. So Phase 1 is the Loop, and it has to work on the front end before a single filter goes on the page.
Build the Loop You Want to Filter
You can loop a Section, Row, Column or a single module. For a blog, the simplest reliable setup is a Row with one Column, looped, containing a Post Title, a Post Featured Image and a Post Excerpt module wired to dynamic content.
Add the Post Filter Module and Point It at the Loop
| Apply Mode | What happens |
|---|---|
| Submit (default) | Nothing changes until the visitor clicks Apply. The page reloads with the filters written into the URL. Best for long lists, many filters, or when you want shareable, bookmarkable filtered URLs. |
| Auto | The loop updates the moment a control changes. No reload, no Apply button needed. Best for short blogs, portfolios, anything where instant feedback matters more than a clean URL. |
Configure the Filter Items
Every control inside the form is a Post Filter Item — a child module you add, duplicate, reorder or delete from the Elements list. Each item has a Field Type, and the Field Type decides which other settings appear.
| Field Type | What it renders |
|---|---|
| Text | Search box — or a number, date, date-time or time input via Field Value Type. Searches title, content and custom fields. |
| Select | Single-choice dropdown. Best for long option lists. |
| Radio | Single-choice button list. Visible options, one pick. |
| Checkbox | Multi-choice list. The starter Category item is one of these. |
| Order By | Sort-field picker. You choose which fields visitors may sort on. |
| Order | Ascending / descending toggle. Pairs with Order By. |
| Multiple Order | Up to five stacked sort rules. Overkill for a blog; useful for catalogs. |
| Submit / Reset | Buttons. Submit is required unless Apply Mode is Auto. Reset clears this loop's filters only. |
| Price Range / Stock Status / Review Rating | WooCommerce controls — only offered when the target loop is a product loop. |
Item settings that matter
| Setting | What it does |
|---|---|
| Field Label | The text above the control. For Submit and Reset it's the button text. |
| Field Value Type | Text, Number, Date, Date Time or Time — how the input is interpreted. Get this wrong and a date filter silently compares strings. |
| Field Option | The data being filtered: a taxonomy (Category, Tag…), author, standard post data, or a custom field. |
| Meta Key | The custom-field key, when Field Option is a custom field. |
| Field Placeholder | Hint text inside the input. Falls back to the Field Label, then to "Search". |
| Field Comparison | How values are matched: equals, not equals, greater than, contains, and so on. |
| Options Method | Automatic discovers the distinct values in the database and caches them for 24 hours. Manual lets you type your own Value / Label pairs. |
| Order By Options | On an Order By item: the checkboxes that decide which sort fields visitors can choose. |
| Label Date Format | PHP date format for date option labels, for example M j, Y. |
Automatic options are cached for a day. Add a new category and it won't appear in the filter until the cache expires or you click Clear Cached Options. Remember this before you file it as a bug.
Style the Form
The parent module's Design tab sets defaults for every item; each item can override them. Work parent-first.
| Design group | Controls |
|---|---|
| Layout | Block, Flex (default) or Grid for how the items line up. Flex with wrap is the right answer for a horizontal filter bar that stacks on phones. |
| Field | Text and number inputs, dropdowns, and label typography. |
| Option / Checkbox & Radio Options | The individual rows in a checkbox or radio list: spacing, backgrounds, borders, icons. |
| Button | Submit and Reset appearance — use the same preset as your site buttons so the form doesn't look bolted on. |
| Sizing / Spacing / Border / Box Shadow | Standard Divi 5 groups. Design Variables apply here, so pull your global colors and spacing tokens rather than typing hex values. |
A long Select on a 390px screen needs full width, and a Flex row of five items needs Wrap turned on or it will overflow the column.
Test It Like a Visitor
Things That Will Save You an Afternoon
- Multiple Post Filter modules can target the same loop and they stay in sync. A search box in the hero and a category bar above the grid is a legitimate layout.
- Filters never leak across loops. Two loops on one page, two independent filter forms.
- Pagination stays in sync. A Pagination module on the same loop resets to page one whenever a filter changes.
- Taxonomy, user and menu loops are limited. They only support Text, Order By, Order, Submit and Reset — no Select, Radio or Checkbox items.
- Changing the Target Loop to an incompatible type resets any affected items back to Text. Set the target first, then build the items.
- Custom fields with thousands of unique values trigger a warning in Automatic mode. Switch that item to Manual options or pick a different field.
The same Canvas + Interaction approach from my Divi 5 off-canvas menu tutorial can hide this whole filter form behind a "Filter" button on mobile.
