{"id":324719,"date":"2026-06-28T13:34:10","date_gmt":"2026-06-28T13:34:10","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sieve-faceted-filter-for-woocommerce\/"},"modified":"2026-06-29T06:56:21","modified_gmt":"2026-06-29T06:56:21","slug":"sieve","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/sieve\/","author":108511,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.9.5","stable_tag":"0.9.5","tested":"7.0","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"Sieve - Faceted Filter for WooCommerce","header_author":"WPPoland.com","header_description":"Fast, accessible faceted filtering for WooCommerce and WordPress. Beautiful facet widgets, AJAX filtering with no page reload, a mobile filter drawer, and Core Web Vitals by design.","assets_banners_color":"f4f5f5","last_updated":"2026-06-29 06:56:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/plogins.com\/sieve\/","header_author_uri":"https:\/\/wppoland.com","rating":5,"author_block_rating":0,"active_installs":0,"downloads":98,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.1":{"tag":"0.1.1","author":"motylanogha","date":"2026-06-28 13:33:45"},"0.1.2":{"tag":"0.1.2","author":"motylanogha","date":"2026-06-28 21:30:37"},"0.9.5":{"tag":"0.9.5","author":"motylanogha","date":"2026-06-29 06:56:21"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3588807,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3589542,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3588807,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3589542,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"sieve\/search":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"sieve\/search","version":"0.4.0","title":"Sieve Search","category":"woocommerce","icon":"search","description":"Predictive product search with an instant, accessible typeahead dropdown.","keywords":["search","typeahead","autocomplete","product","woocommerce"],"textdomain":"sieve","attributes":{"placeholder":{"type":"string","default":""},"button":{"type":"boolean","default":true},"button_text":{"type":"string","default":""},"limit":{"type":"number","default":6},"min_chars":{"type":"number","default":2},"in_stock_only":{"type":"boolean","default":true}},"supports":{"html":false,"align":["wide"]},"editorScript":"file:.\/index.js"},"sieve\/filter":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"sieve\/filter","version":"0.4.0","title":"Sieve Filter","category":"woocommerce","icon":"filter","description":"Fast, accessible faceted product filtering with a results grid.","keywords":["filter","facet","woocommerce","search"],"textdomain":"sieve","supports":{"html":false,"align":["wide","full"]},"editorScript":"file:.\/index.js"}},"tagged_versions":["0.1.1","0.1.2","0.9.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3588892,"resolution":"1","location":"assets","locale":"","width":1600,"height":1200},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3589542,"resolution":"2","location":"assets","locale":"","width":414,"height":896},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3588892,"resolution":"3","location":"assets","locale":"","width":1600,"height":1200}},"screenshots":{"1":"Faceted filtering on a product page: categories, price range, availability and on-sale facets with live dependent counts, active-filter chips and a results grid.","2":"Mobile filter drawer with a sticky \"Show results\" bar.","3":"The facet builder: add, reorder and retype facets, set the layout, and rebuild the index."}},"plugin_section":[],"plugin_tags":[5861,28913,2236,6033,286],"plugin_category":[45],"plugin_contributors":[264912],"plugin_business_model":[],"class_list":["post-324719","plugin","type-plugin","status-publish","hentry","plugin_tags-ajax-filter","plugin_tags-faceted-search","plugin_tags-filter","plugin_tags-product-filter","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-motylanogha","plugin_committers-motylanogha"],"banners":{"banner":"https:\/\/ps.w.org\/sieve\/assets\/banner-772x250.png?rev=3589542","banner_2x":"https:\/\/ps.w.org\/sieve\/assets\/banner-1544x500.png?rev=3588807","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/sieve\/assets\/icon-128x128.png?rev=3588807","icon_2x":"https:\/\/ps.w.org\/sieve\/assets\/icon-256x256.png?rev=3589542","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/sieve\/assets\/screenshot-1.png?rev=3588892","caption":"Faceted filtering on a product page: categories, price range, availability and on-sale facets with live dependent counts, active-filter chips and a results grid."},{"src":"https:\/\/ps.w.org\/sieve\/assets\/screenshot-2.png?rev=3589542","caption":"Mobile filter drawer with a sticky \"Show results\" bar."},{"src":"https:\/\/ps.w.org\/sieve\/assets\/screenshot-3.png?rev=3588892","caption":"The facet builder: add, reorder and retype facets, set the layout, and rebuild the index."}],"raw_content":"<!--section=description-->\n<p>Sieve gives your shoppers a fast, modern way to find products. They tick a few boxes, drag a price range, type a keyword, and the grid updates instantly with no page reload. It is built to feel effortless and to stay quick on large catalogs, with accessible widgets, a mobile filter drawer, and a rendering approach designed for Core Web Vitals: no layout shift when results change.<\/p>\n\n<p>Everything runs against a pre-built index, so filtering stays fast even with thousands of products, and the counts next to each option update live as shoppers narrow down.<\/p>\n\n<p>Filtering that feels instant:<\/p>\n\n<ul>\n<li>AJAX filtering with no page reload, and shareable, bookmarkable URLs<\/li>\n<li>Live dependent counts that update as filters are applied<\/li>\n<li>Active-filter chips, one-click reset, sorting and pagination built in<\/li>\n<\/ul>\n\n<p>Every facet type you need:<\/p>\n\n<ul>\n<li>Checkboxes, radio buttons and searchable dropdowns<\/li>\n<li>Color and image swatches, hierarchical (tree) categories<\/li>\n<li>Autocomplete (searchable options) and an A-Z index<\/li>\n<li>Range sliders, keyword search, sort, pagination and reset<\/li>\n<\/ul>\n\n<p>Filter by anything in your catalog:<\/p>\n\n<ul>\n<li>Categories, tags and product attributes<\/li>\n<li>Price, stock status and on sale<\/li>\n<\/ul>\n\n<p>Predictive product search:<\/p>\n\n<ul>\n<li>An instant typeahead dropdown with thumbnails, prices, SKU and category matches, and full keyboard navigation<\/li>\n<\/ul>\n\n<p>Fast and accessible by design:<\/p>\n\n<ul>\n<li>Pre-built index for quick filtered queries on large catalogs<\/li>\n<li>Mobile filter drawer with a sticky Apply bar<\/li>\n<li>Keyboard and screen-reader friendly widgets<\/li>\n<li>Core Web Vitals by design: no layout shift when results update<\/li>\n<\/ul>\n\n<p>Easy to place and configure:<\/p>\n\n<ul>\n<li>Gutenberg \"Sieve Filter\" block and the <code>[sieve]<\/code> shortcode<\/li>\n<li>A visual facet builder in the admin: add, reorder and retype facets, set the layout, and rebuild the index<\/li>\n<\/ul>\n\n<h4>Sieve PRO<\/h4>\n\n<p>Sieve PRO adds advanced control and integrations for growing stores:<\/p>\n\n<ul>\n<li>Star-rating facet with visual stars<\/li>\n<li>Conditional facet rules: show or hide facets by category, shop page or customer role<\/li>\n<li>A\/B layout testing to find the filter layout that converts best<\/li>\n<li>Performance dashboard: index size, catalog coverage and filter-speed benchmarks<\/li>\n<li>Search integrations: SearchWP and Algolia, with native fallback<\/li>\n<\/ul>\n\n<p>Documentation: https:\/\/plogins.com\/sieve\/docs\/<\/p>\n\n<h3>Development<\/h3>\n\n<p>The full, human-readable source for the compiled assets is included in this plugin under <code>resources\/<\/code>, alongside the build tooling (<code>package.json<\/code>, <code>scripts\/build-wp.mjs<\/code>). The compiled files under <code>build\/<\/code> are generated from those sources. To rebuild them:<\/p>\n\n<ol>\n<li><code>npm install<\/code><\/li>\n<li><code>npm run build<\/code><\/li>\n<\/ol>\n\n<p>This uses Vite (admin and front-end scripts) and @wordpress\/scripts (blocks). There is no obfuscation; every shipped asset can be regenerated from the included sources. The public source repository is also available at https:\/\/github.com\/wppoland\/sieve.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Install Sieve and activate it.<\/li>\n<li>Open the Sieve menu, rebuild the index, and adjust the facet set if needed.<\/li>\n<li>Place the filter on any page with the <code>[sieve]<\/code> shortcode or the \"Sieve Filter\" block.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"documentation%20and%20links\"><h3>Documentation and links<\/h3><\/dt>\n<dd><ul>\n<li><strong>Documentation<\/strong> - https:\/\/plogins.com\/sieve\/docs\/<\/li>\n<li><strong>Plugin page<\/strong> - https:\/\/plogins.com\/sieve\/<\/li>\n<li><strong>Source code<\/strong> - https:\/\/github.com\/wppoland\/sieve<\/li>\n<li><strong>Bug reports and feature requests<\/strong> - https:\/\/github.com\/wppoland\/sieve\/issues<\/li>\n<li><strong>Discussions and questions<\/strong> - https:\/\/github.com\/wppoland\/sieve\/discussions<\/li>\n<\/ul><\/dd>\n<dt id=\"does%20it%20require%20woocommerce%3F\"><h3>Does it require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Sieve filters WooCommerce product archives and any page where you place the filter.<\/p><\/dd>\n<dt id=\"does%20filtering%20reload%20the%20page%3F\"><h3>Does filtering reload the page?<\/h3><\/dt>\n<dd><p>No. Filtering happens via AJAX with the URL kept in sync so results are shareable.<\/p><\/dd>\n<dt id=\"what%20can%20shoppers%20filter%20by%3F\"><h3>What can shoppers filter by?<\/h3><\/dt>\n<dd><p>Sieve can filter WooCommerce products by categories, tags, attributes, price, stock status, on-sale state and a keyword search field. It also supports range sliders, searchable options, color\/image swatches, active-filter chips and sorting.<\/p><\/dd>\n<dt id=\"is%20it%20fast%20on%20large%20stores%3F\"><h3>Is it fast on large stores?<\/h3><\/dt>\n<dd><p>Yes. Sieve builds a product filter index, so AJAX filter requests do not need to run slow live joins for every category, attribute and price query.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20the%20filter%20to%20a%20page%3F\"><h3>How do I add the filter to a page?<\/h3><\/dt>\n<dd><p>Use the <code>[sieve]<\/code> shortcode or the \"Sieve Filter\" block. Both render the facets, the results grid, sorting, active-filter chips and pagination together.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20the%20predictive%20search%20box%3F\"><h3>How do I add the predictive search box?<\/h3><\/dt>\n<dd><p>Use the <code>[sieve_search]<\/code> shortcode or the \"Sieve Search\" block. As shoppers type, a dropdown shows matching products with thumbnails and prices; it is fully keyboard accessible and falls back to the standard product search when JavaScript is unavailable.<\/p><\/dd>\n<dt id=\"is%20sieve%20accessible%3F\"><h3>Is Sieve accessible?<\/h3><\/dt>\n<dd><p>Yes. The filter UI is built for keyboard use and screen readers, with labelled regions, accessible controls, polite result-count announcements and reduced-motion support.<\/p><\/dd>\n<dt id=\"does%20sieve%20work%20on%20mobile%3F\"><h3>Does Sieve work on mobile?<\/h3><\/dt>\n<dd><p>Yes. Sieve includes a mobile filter drawer with a sticky apply bar, so shoppers can filter products without fighting a long sidebar on small screens.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.9.5<\/h4>\n\n<ul>\n<li>Admin: fix index help text shown on every facet row; add empty-index and empty-facet notices, grouped source picker, save\/reindex error messages, and load-failure state.<\/li>\n<li>Admin: style-preset inline help in Appearance panel.<\/li>\n<\/ul>\n\n<h4>0.9.4<\/h4>\n\n<ul>\n<li>Extension: <code>sieve_search_product_ids<\/code> filter on <code>SearchResolver<\/code> so PRO add-ons can route the in-grid search facet and predictive search through SearchWP or Algolia.<\/li>\n<\/ul>\n\n<h4>0.9.3<\/h4>\n\n<ul>\n<li>Extension: <code>sieve_facet_body<\/code>, <code>sieve_facet_types<\/code> and <code>sieve_facet_catalog<\/code> filters plus <code>FacetTypeRegistry<\/code> in the admin catalog REST response so PRO add-ons can register advanced facet presentations (e.g. star rating).<\/li>\n<\/ul>\n\n<h4>0.9.2<\/h4>\n\n<ul>\n<li>Extension: <code>sieve_settings<\/code> filter and <code>layout<\/code> setting (sidebar, stacked, inline) so PRO add-ons can rotate filter-panel layouts and column counts. FilterEngine applies layout modifier classes on <code>.sieve-app<\/code>.<\/li>\n<\/ul>\n\n<h4>0.9.1<\/h4>\n\n<ul>\n<li>Extension: <code>sieve_facets<\/code> filter and page context (<code>FacetContext<\/code>) so PRO add-ons can show or hide facets by category, shop page or customer role. AJAX requests preserve context via <code>sf_ctx_*<\/code> query vars.<\/li>\n<\/ul>\n\n<h4>0.9.0<\/h4>\n\n<ul>\n<li>Polish: a refreshed, more attractive filter UI. Collapsible facet groups, an \"Active filters\" chip row with clearer remove buttons, a friendly empty state with a one-click \"Clear all filters\" action, an accessible loading spinner, and a retryable error message if an update fails.<\/li>\n<li>Design: themeable CSS custom properties, fluid sizing, automatic dark mode (prefers-color-scheme), and tasteful transitions that respect prefers-reduced-motion. No layout shift when filters apply.<\/li>\n<li>Admin: inline help on every setting, including a short description of what each facet type looks like to shoppers.<\/li>\n<li>Accessibility: facet groups expose their expanded\/collapsed state, result counts announce politely, the pagination and filter regions are labelled, and remove buttons have clear accessible names.<\/li>\n<\/ul>\n\n<h4>0.8.2<\/h4>\n\n<ul>\n<li>Compliance: documented the public source repository and the build steps for the compiled assets (WordPress.org plugin guidelines).<\/li>\n<\/ul>\n\n<h4>0.8.1<\/h4>\n\n<ul>\n<li>Internationalisation: the admin and front-end JavaScript interface strings are now included in the translation template, so the whole plugin (not just the PHP side) can be fully translated.<\/li>\n<\/ul>\n\n<h4>0.8.0<\/h4>\n\n<ul>\n<li>New: Appearance settings. Choose a style preset (Default, Minimal, Bordered, Soft, Unstyled) and customise the accent, border, muted-text and background colours from the admin, with a live preview and a contrast hint. Applies to both the filter and the predictive search. Zero extra requests, no layout shift, fully backward compatible.<\/li>\n<\/ul>\n\n<h4>0.7.0<\/h4>\n\n<ul>\n<li>Search now behaves as a filter: type to narrow the live grid in place with predictive, diacritic- and typo-tolerant suggestions, combinable with every facet, and URL- and back-button-safe. Dependent facet counts now reflect the active search too.<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>Predictive search is now diacritic-insensitive and typo-tolerant. It matches product titles and SKUs while ignoring diacritic differences (so \"lozko\" finds \"\u0142\u00f3\u017cko\"), tolerates small typos, and matching categories are found the same way. This release triggers a one-time rebuild of the search index.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Predictive search now looks beyond product titles: a partial SKU pass surfaces a product by its code even when the title misses, and matching product categories appear as their own group in the dropdown so a shopper can jump straight to the filtered archive. Results and categories are grouped with headings, and keyboard navigation moves through both.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>New facet types: Autocomplete (a search box that filters a facet's own options as you type, for facets with many values) and A-Z index (an alphabetical bar that filters options by first letter). Both filter client-side with no extra request, and degrade to a plain option list without JavaScript.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>New: predictive product search. The <code>[sieve_search]<\/code> shortcode and \"Sieve Search\" block render an accessible search box with an instant typeahead dropdown (product thumbnails, prices, SKU), full keyboard navigation, and a \"view all results\" link. Built on WooCommerce product search, loaded as a standalone lightweight bundle so pages without it stay fast.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>New facet types: color and image swatches (with per-term color\/image, plus an automatic color guess from common color names) and hierarchical (tree) category facets that show only branches leading to results.<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Admin: cleaner facet builder rows (aligned controls, grouped reorder\/remove buttons with first\/last disabled states, field source shown as a caption).<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Compliance: added the plugin owner to the Contributors list and included the human-readable sources and build steps for the compiled assets (WordPress.org plugin guidelines).<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial MVP release: pre-built index, AJAX filtering with URL state, dependent facet counts, checkboxes \/ radio \/ dropdown \/ range \/ search facets, sorting, active-filter chips, pagination, mobile filter drawer, React facet builder, <code>[sieve]<\/code> shortcode and \"Sieve Filter\" block.<\/li>\n<\/ul>","raw_excerpt":"Fast, accessible faceted product filtering for WooCommerce: AJAX filters, a mobile drawer, and Core Web Vitals by design.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/324719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=324719"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/motylanogha"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=324719"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=324719"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=324719"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=324719"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=324719"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=324719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}