Own development. From Galicia.

[ Experience and content ]

[B] Baqueiro Loop Filter

Live text search for Elementor Loop Grid — filter by custom field, URL-persistent, pagination-safe. One widget, one setting.

Works with Elementor

[B] Baqueiro Loop Filter

  • Filters any Elementor Loop Grid by custom field (postmeta) — partial LIKE match out of the box
  • Filter value stored in the URL — pagination works, back button works, state survives refresh
  • 800ms debounce prevents reload on every keystroke — smooth UX, zero config

What it solves

Elementor Loop Grid Filtering. Finally, Done Right.

Elementor Pro’s Loop Grid is powerful — but it has no built-in search or filter widget. Every workaround either breaks pagination, loses the filter on page refresh, or requires a separate plugin with a 200-setting configuration panel. [B] Baqueiro Loop Filter solves it cleanly: one widget, one setting, zero configuration overhead.

The Problem Every Elementor Developer Hits

You build a Loop Grid to display a custom post type — team members, properties, courses, products, portfolio items. The client asks: “Can users search or filter by name?” You say yes. Then you spend two hours trying to wire up AJAX, figure out why pagination breaks, and explain why the filter resets on page load.

The standard solutions are over-engineered. JetSmartFilters, FacetWP, and similar tools are built for complex multi-filter scenarios. If all you need is a text search against one or two custom fields — you’re paying for and configuring ten features you’ll never use.

And if you try to build it yourself? You’re fighting Elementor’s query hooks, URL parameter sanitisation, and debounce timing on a per-project basis. Every. Single. Time.

One Widget. One Setting. It Works.

[B] Baqueiro Loop Filter is a native Elementor widget that adds a text search field to any page containing a Loop Grid. You configure the custom field meta key to filter against, drop the widget on the page, and it works — including pagination.

The filter value is written into the URL as a query parameter. That means the filtered state survives page refresh, can be bookmarked, and works correctly with Elementor’s native Loop Grid pagination. No AJAX session state to manage. No hidden fields. No JavaScript frameworks.

The widget integrates with Elementor’s standard Controls Manager, so typography, text colour, and spacing are all styled directly from the Elementor Style panel — no custom CSS required unless you want it.

What Makes It Different

  • Filters any custom field (postmeta) on a Loop Grid — set the meta key in the widget settings and the filter runs a LIKE query against that field. Partial matches work out of the box.
  • Filter state lives in the URL — the search value is passed as a URL query parameter, so pagination works correctly, the filtered state is bookmarkable, and the browser back button behaves as expected.
  • 800ms debounce on keyup — the filter only fires after the user stops typing, avoiding unnecessary page reloads on every keystroke.
  • Multiple filters on one page — each widget instance targets a different meta key. The query hook accumulates all active filters with AND logic and applies them once, preventing duplicate query modification.
  • Styled directly inside Elementor — typography group control and text colour control are exposed in the widget’s Style tab. No external stylesheet to override.
  • No AJAX. No REST API. No configuration. — the filter works via a standard URL redirect. There is no async request layer to configure, debug, or secure.
  • Supports both exact match and LIKE search — append __like to the meta key for partial matching (default), or use the exact key for strict equality filtering.

What This Replaces

JetSmartFilters costs €39/year per site and requires configuring filter providers, indexing, and AJAX endpoints. FacetWP starts at $99/year and has a full learning curve. A custom implementation takes a senior developer 3–5 hours per project at €80–€120/hour.

[B] Baqueiro Loop Filter starts at €29/year. If you build even one Elementor site per year that needs a Loop Grid filter, it pays for itself in the first hour.

Our Guarantee

This plugin is written and maintained by a senior developer with 18+ years of experience. It hooks into Elementor’s official query API — no core hacks, no monkey-patching. If it doesn’t work as described on your Elementor Pro site, you get your money back.

Features

Live search on any Loop Grid

Type in the filter field and results update after 800ms. The filter runs a server-side LIKE query against the custom field you specify — no client-side JavaScript filtering, no stale data.

Filter state lives in the URL

The search value is a URL parameter. Pagination works correctly. The browser back button works. Visitors can bookmark or share filtered result pages. Zero session state to manage.

Stack multiple filters with AND logic

Place two or three filter widgets on the same page, each targeting a different custom field. All active filters are combined in a single query modification — clean, predictable, and deduplication-safe.

Styled inside Elementor, not outside it

Typography, font size, weight, colour — all controlled from the widget's Style tab like any native Elementor widget. No external CSS file to override or specificity battle to win.

Zero configuration overhead

No filter providers. No AJAX endpoints. No indexing. No cron jobs. One field in the widget settings (the meta key), and the filter works. Setup time is under 2 minutes.

Everything it includes

  • Native Elementor widget registered in the "Baqueiro Widgets" category
  • Hooks into Elementor's official elementor/query API — no core overrides
  • Supports LIKE (partial) and exact (=) match via meta key suffix convention
  • Global deduplication flag prevents multiple simultaneous query modifications
  • Input value persisted from URL on page load — correct state after pagination navigation
  • Pagination parameter (paged/page) cleared on new search to reset to page 1
  • Admin notice if Elementor Pro is not active
  • Full i18n support with text domain

Who it is for

Team or staff directories

Let visitors search team members by name or role on a Loop Grid listing. One filter widget, one meta key — done in 2 minutes.

Course or resource libraries

Filter a Loop Grid of courses, documents, or resources by title keyword or category field. Works with any CPT and any custom field.

Property or product listings

Add a search field to a Loop Grid of real estate listings, products, or services filtered by a specific attribute stored in postmeta.

Portfolio filtering

Let visitors filter portfolio items by client name, industry, or tag stored as a custom field — with pagination that actually works.

How it works

  1. Install and activate

    Upload the plugin ZIP via Plugins → Add New and activate. Elementor Pro must already be active — the plugin shows an admin notice if it is not found.

  2. Set the Query ID on your Loop Grid

    In Elementor, open your Loop Grid widget settings. Under the Query section, set the Query ID field to "my_loop". This is the hook the filter widget listens to.

  3. Drop the filter widget on the page

    Search for "Baqueiro Loop Filter" in the Elementor widget panel (under the Baqueiro Widgets category) and drag it onto the page — above or beside the Loop Grid.

  4. Set the Meta Key

    In the widget's Content settings, enter the custom field (postmeta) key you want to filter against. For example: "product_name" or "team_member_role". Save and publish.

  5. Test the filter

    Visit the page on the frontend, type in the filter field, and watch the Loop Grid update after 800ms. Navigate to page 2 of filtered results — the filter persists correctly.

Why Baqueiro Loop Filter?

Compare against common Elementor filtering solutions

Aspect Baqueiro Loop Filter Other solutions
Works with Elementor Loop Grid natively Yes — hooks into Elementor's official query API JetSmartFilters / FacetWP require separate provider setup
Pagination works after filtering Yes — filter value stored in URL, travels with pagination AJAX-based filters often break native WP pagination
Filter state bookmarkable / shareable Yes — URL parameter approach AJAX state is not in the URL by default
Setup time Under 2 minutes — one meta key field 15–60 minutes for provider, index, and widget config
Styled inside Elementor Yes — native Controls Manager integration Custom CSS or separate style settings outside Elementor
Annual cost (single site) €29/year JetSmartFilters €39/yr · FacetWP $99/yr · Custom dev €240–€600

Before installing

PHP
8.1+
WordPress
6.0+
Tested up to
WordPress 6.9.1
Current version
5.1.1
Requires
Elementor Pro, Elementor
Not compatible with
None

Documentation See the demo

Questions before you start

Does this work with Elementor Free, or do I need Elementor Pro?

Elementor Pro is required. The Loop Grid widget — which this plugin filters — is a Pro feature. The plugin checks for Elementor Pro on activation and shows an admin notice if it is not found.

How do I connect the filter widget to my Loop Grid?

In your Loop Grid settings in Elementor, set the Query ID to "my_loop" (or "my_loop_key"). Then drop the Baqueiro Loop Filter widget anywhere on the same page and set the Meta Key to the custom field you want to filter. That's it — no AJAX endpoints, no shortcode IDs, no provider configuration.

Does pagination still work after filtering?

Yes. The filter value is stored in the URL as a query parameter. When the user navigates to page 2 of the filtered results, the filter parameter travels with the URL and is reapplied to the query. This is the correct, server-side approach — not a client-side AJAX workaround that breaks on deep pagination.

Can I filter by more than one field at the same time?

Yes. Place multiple Baqueiro Loop Filter widgets on the page, each with a different Meta Key. All active filter values are combined with AND logic in the Loop Grid query — posts must match all active filters to appear in the results.

Does the filter do partial matching, or only exact values?

By default the filter uses a LIKE query, so partial matches work — typing "mar" will match "Maria", "Marketing", and "Margarida". If you need exact matching (for dropdowns or checkbox filters), remove the __like suffix from the meta key in the widget settings.

Will it break if I update Elementor?

The plugin hooks into Elementor's official elementor/query action — the same API Elementor documents for custom query modifications. It does not patch Elementor core files. As long as Elementor maintains this API (which they have across all major versions), the plugin continues to work.

Updates and versions

5.1.1