Help Center

How to Use Filters with the Listing Grid Widget

This tutorial explains how to use JetSmartFilters widgets with the Listing Grid widget of the JetEngine plugin.

Before you start, check the tutorial requirements:

  • Elementor (Free version), Block editor (Gutenberg), or Bricks

  • JetEngine plugin installed and activated

  • JetSmartFilters plugin installed and activated

JetSmartFilters’ filters can be connected to the JetEngine Listing Grid widget/block/element to filter posts, products, users, Custom Post Types, or Custom Content Types dynamically.

This tutorial covers:

  • creating and attaching filters to the Listing Grid widget/block/element;
  • configuring AJAX filtering;
  • choosing the correct provider;
  • avoiding common pagination and filtering issues.

How Filtering Works with Listing Grid

Listing Grid is a JetEngine plugin widget/block/element intended to display dynamic data from Meta Fields of Custom Post Types (CPT), Custom Content Types (CCT), default WordPress pages and posts, terms, taxonomy, or WordPress User data. If additional plugins are installed and activated, this widget/block/element can be used to display WooCommerce products, JetAppointment service, and provider data, and more in the form of a grid. 

So when the JetEngine Listing Grid returns the results of the query, JetSmartFilters modifies the query results according to the selected parameters. The list can be filtered by categories, meta fields, or query results, etc. It is also important to select the proper provider and the Apply Type settings for smooth filtering.

Create a Filter in JetSmartFilters

Proceed to WordPress Dashboard > Smart Filters and click the “Add New” button.

In the newly opened window, fill in the following fields:

  • Filter Name — enter the desired name for the filter to be able to search by it;
  • Filter Label — enter the regular label that will be shown next to the filter itself. It helps users understand what the filter is for before they interact with it;
  • Active Filter Label — enter the label that will be shown after the filter becomes active, usually inside the Active Filters or Active Tags widgets/blocks/elements;
  • Filter Type — select the desired type of filter. Among the options are: “Checkboxes list,” “Select,” “Search,” etc. The following settings will become available for adjusting according to the selected type; 

In this case, we select “Checkbox list” Filter Type. For the Data Source, we use the “Taxonomies” option. For the Taxonomy, select the required one; we use the “Category.” You can also set the Order rules, whether you need to show the empty terms, or include/exclude some terms, etc. 

checkboxes filter settings

To save the filter, the “Update” button should be pressed.

Warning

If some required fields are empty, you will not be able to update the filter, and the notification will be shown next to the “Update” button.

Add the Listing Grid

Open the editing page where the filter is expected to be applied — we use Elementor editor in this case. Insert the Listing Grid widget and select the Listing Item you created earlier.

listing grid added to the page

Follow the How to Create a Listing Template for Post Types in Elementor tutorial if you are not sure about the settings.

Connect the Filter to the Listing Grid

Now, add the filter widget to the page. As far as we have created a “Checkboxes list” filter, we search for and add the Checkboxes Filter widget. Select the filter you created, “Category” in our case.

filter added to the page

Choose the correct provider for your filter

The next vital setting is the provider selection in the This filter for field. As far as we are using the Listing Grid as a provider, the “JetEngine” option should be selected. 

jetengine provider is set

Remember to enable the needed provider in WordPress Dashboard > Smart Filters > Settings > General Settings. The provider will not be available in the This filter for dropdown until it is enabled in these settings. 

enable providers for filters

To learn more about correct provider selection according to the filtered widget/block/element, refer to our How to Connect Filters with Providers Using Custom IDs guide. It is important to select the corresponding provider, otherwise, the filter will not be applied.

AJAX vs. Page Reload filtering

The next important setting is the Apply Type. There are three options offered: 

  • AJAX;
  • Mixed;
  • Page Reload.

The option you choose will affect the way the filter is applied. Here is a short comparison table for you to understand the difference between the Apply Types

Apply TypeWhen to UseURL Behavior
AJAXStandard filtering without page reloadURL does not change
MixedWhen shareable filtered URLs are neededURL updates, but the page does not reload
Page ReloadStatic archive filtering and SEO-oriented pagesFull page reload

To learn more about which Apply Type should be used in what case, check our AJAX, Mixed, and Page Reload Filter Apply Types Overview guide. 

If you see a full page reload instead of a smooth AJAX update when filtering, first check the Apply Type setting in JetSmartFilters and the AJAX settings of the grid widget/block/element.

Back Button and filter state

The browser’s “Back” button behavior also depends on the Apply Type selected for the filters on the page.  

  • AJAX Apply Type does not change the URL once the filter is applied — that’s why if you click the “Back” button to remove the applied filters, you will be redirected to the previous page. 
  • Mixed Apply Type stores filter values in the URL— this helps preserve filtered results when users navigate back from a single post/page. That is also useful for directories, stores, and archive pages.
  • Page Reload Apply Type stores the filter values in the URL, as well as reloading the page completely when the filter is applied. It works well together with the “Back” button: it will redirect you to the previous filter results or prefiltered grid.

Pagination, Load More, and Infinite Scroll notes

Another important setting that can affect the filters’ behavior is the Posts number setting in the Listing Grid widget/block/element or a custom query if applied.

posts number setting in the listing grid widget
Warning

When using Load More or Infinite Scroll together with filters, the Posts number setting in the Listing Grid determines how many posts are available for filtering. If this number is smaller than the total number of matching posts, some filtered results may not appear.

Among the possible issues you may encounter are:

  • posts duplication;
  • incomplete filtering results;
  • wrong number of posts.

So ensure that the Posts number field defines at least as many posts as there are available in the filtered results. Additionally, you can try to set the correct number of posts in the custom query, following the Posts Query > Pagination > Posts Per Page field directory.

posts per page defined in posts query

When Query ID is needed

By default, JetSmartFilters’ filters work without a Query ID. However, often the Query ID is required when using Query Builder or multiple grids/filters on one page. Refer to the How to Connect Filters with Providers Using Custom IDs guide to learn how to attach the Query ID to different providers. 

The Query ID might be required when: 

  • there are multiple grids/filters on one page, and you need to connect filters to dedicated providers;
  • there are several custom queries used on the page that prevent filters from working correctly.

For simple Listing Grid setups, the Query ID may not be necessary.

To set up the Query ID correctly, in the Query ID field of the filter widget, add the unique ID. 

query id added to the filter
Things to know

Ensure that the Query ID you add does not have spaces, special characters, or numbers. It must be unique and not repeatable. Refer to our How to Apply Filters to Several Widgets on a Page guide to know how to apply the Query IDs to the filters and providers when there are several providers on the page.

Proceed to the Advanced tab of the Listing Grid widget. Enter the same Query ID you used for the filter in the CSS ID field.

query id applied to the listing grid

In case you have a custom query applied to the Listing Grid, apply the same Query ID to it in the dedicated field.

query id applied to the custom query

Check the Result

Ensure you clicked the “Publish” button on the page where the filter is applied and update the custom query if you used one. 

On the frontend, the filter is successfully applied to the Listing Grid.

filter applied on the front

FAQ

Why is my JetSmartFilters filter not working with the Listing Grid?

Usually, this happens because the wrong provider is selected in the This filter for field. When filtering the Listing Grid widget/block/element, the provider should be set to “JetEngine.” Additionally, ensure that the provider is enabled in WordPress Dashboard > Smart Filters > Settings > General Settings and that the filter and Listing Grid are connected correctly.

What is the difference between AJAX, Mixed, and Page Reload Apply Types?

The Apply Type defines how the filtered results are updated on the page:
– AJAX  updates results instantly without reloading the page;
– Mixed updates results without reload and stores filter values in the URL;
– Page Reload refreshes the entire page after applying filters.
AJAX is commonly used for smooth filtering experiences, while Mixed and Page Reload are helpful when you need shareable filtered URLs or SEO-friendly archive pages.

Why does the browser “Back” button not restore my filtered results?

The behavior depends on the selected Apply Type.
With the AJAX Apply Type, the URL does not change after filtering, so the browser “Back” button returns users to the previous page instead of the previous filter state.
The “Mixed” and “Page Reload” Apply Types save filter values in the URL, allowing users to return to previous filtered results using the browser navigation.

Do I need to use a Query ID with the Listing Grid filter?

For simple setups, a Query ID is usually unnecessary. However, it becomes important when:
– there are multiple Listing Grids or filters on the same page;
– you use Query Builder queries;
– several providers or custom queries are connected on one page.
In these cases, the same Query ID should be added to the filter widget/block/element, Listing Grid widget/block/element, and custom query settings.

Why are some filtered posts missing when using Load More or Infinite Scroll?

This usually happens because the Posts number setting in the Listing Grid or the Posts Per Page value in the custom query is smaller than the total number of matching posts. When the available number of loaded posts is limited, filtering may produce incomplete results, duplicated posts, or incorrect pagination behavior.

That’s it. Now you know how JetSmartFilters’ filters work with the JetEngine Listing Grid widget/block/element on your WordPress site.

Was this article helpful?
YesNo

Need help?

Ask Facebook community

Get answers from 30K+ Crocoblock Community experts from all over the world.

Start a live chat

Ask question to support agent and share its details via chat messages.