{"id":391594,"date":"2026-10-29T09:33:02","date_gmt":"2026-10-29T09:33:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/filtersmith-product-category-filters-for-woocommerce\/"},"modified":"2026-10-29T09:32:45","modified_gmt":"2026-10-29T09:32:45","slug":"filtersmith","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/filtersmith\/","author":23591334,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.1","stable_tag":"1.1.1","tested":"7.1.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"FilterSmith \u2013 Product & Category Filters for WooCommerce","header_author":"Delicious Media","header_description":"Smart AJAX product filters for WooCommerce. Detects the relevant filters for every category automatically (subcategory, brand, price, attributes, sale, rating, stock), with sorting, products per page, a desktop filter bar and a mobile filter sheet.","assets_banners_color":"829dca","last_updated":"2026-10-29 09:32:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/filtersmith.com\/","header_author_uri":"https:\/\/deliciousmedia.nl\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":54,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.1":{"tag":"1.1.1","author":"deliciousmedianl","date":"2026-10-29 09:32:45","revision":3772519}},"upgrade_notice":{"1.1.1":"<p>Translations via translate.wordpress.org; quieter admin reminder.<\/p>","1.1.0":"<p>Mobile layout fixes: floating Filter button on more themes, consistent sort menu and switches.<\/p>","1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3772519,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3772519,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3772519,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3772519,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3772541,"resolution":"1","location":"assets","locale":"","width":1372,"height":874},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3772541,"resolution":"2","location":"assets","locale":"","width":561,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3772541,"resolution":"3","location":"assets","locale":"","width":1064,"height":1121}},"screenshots":{"1":"The filter bar above the product list, with drop-down panels, chips and sorting.","2":"The mobile filter sheet with live result count.","3":"Settings: index, parent categories, detected attributes, sorting and accent colour."}},"plugin_section":[],"plugin_tags":[5861,37962,289430,6033,286],"plugin_category":[45],"plugin_contributors":[289431],"plugin_business_model":[],"class_list":["post-391594","plugin","type-plugin","status-publish","hentry","plugin_tags-ajax-filter","plugin_tags-category-filter","plugin_tags-mobile-filter","plugin_tags-product-filter","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-deliciousmedianl","plugin_committers-deliciousmedianl"],"banners":{"banner":"https:\/\/ps.w.org\/filtersmith\/assets\/banner-772x250.png?rev=3772519","banner_2x":"https:\/\/ps.w.org\/filtersmith\/assets\/banner-1544x500.png?rev=3772519","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/filtersmith\/assets\/icon-128x128.png?rev=3772519","icon_2x":"https:\/\/ps.w.org\/filtersmith\/assets\/icon-256x256.png?rev=3772519","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/filtersmith\/assets\/screenshot-1.png?rev=3772541","caption":"The filter bar above the product list, with drop-down panels, chips and sorting."},{"src":"https:\/\/ps.w.org\/filtersmith\/assets\/screenshot-2.png?rev=3772541","caption":"The mobile filter sheet with live result count."},{"src":"https:\/\/ps.w.org\/filtersmith\/assets\/screenshot-3.png?rev=3772541","caption":"Settings: index, parent categories, detected attributes, sorting and accent colour."}],"raw_content":"<!--section=description-->\n<p>Most filter plugins make you build every filter by hand, for every category. <strong>FilterSmith looks at the products on each page and picks the filters that make sense there<\/strong>: subcategory, brand, price, your WooCommerce attributes, on sale, rating and stock. A boiler category gets different filters than a tap category, without any configuration.<\/p>\n\n<h4>What you get<\/h4>\n\n<ul>\n<li><strong>Automatic filters per page<\/strong> \u2013 on category, shop, tag and brand pages. A filter only appears when it actually helps (at least two options, enough products covered).<\/li>\n<li><strong>Instant AJAX filtering<\/strong> \u2013 results, counts and pagination update without a page reload, using a light response with only the products. Back and forward buttons work, and every filtered page has its own URL.<\/li>\n<li><strong>Desktop filter bar<\/strong> \u2013 compact drop-down panels above the product list, with removable filter chips and \"clear all\".<\/li>\n<li><strong>Mobile filter sheet<\/strong> \u2013 a full-height bottom sheet with large touch targets, a live \"Show 24 products\" button, swipe down or Esc to close.<\/li>\n<li><strong>Price slider<\/strong> and <strong>number sliders<\/strong> for numeric attributes (litres, watts, millimetres\u2026).<\/li>\n<li><strong>Sorting and products per page<\/strong> in the same bar, replacing the default WooCommerce controls.<\/li>\n<li><strong>Live counts<\/strong> next to every option; options without results disappear.<\/li>\n<li><strong>Fast on large shops<\/strong> \u2013 a dedicated attribute index and the WooCommerce lookup tables, with smart caching. Works with page caches such as SiteGround Optimizer, WP Rocket and LiteSpeed.<\/li>\n<li><strong>SEO-safe<\/strong> \u2013 filtered and sorted variants get <code>noindex, follow<\/code> and filter options are not crawlable links, so search engines do not waste time on endless filter combinations.<\/li>\n<li><strong>Works without JavaScript<\/strong> \u2013 the filter is a normal form, AJAX is an enhancement.<\/li>\n<li><strong>Switch filter types on or off<\/strong> for the whole shop (brand, price, sale, rating, stock\u2026), and hide attributes you never want as a filter.<\/li>\n<li><strong>Clean up messy data<\/strong> \u2013 merge attribute values that mean the same thing (\"Heating &amp; cooling\" \/ \"Heating &amp; air conditioning\") or hide values, for all products at once. Codes such as EAN or SKU never become a filter.<\/li>\n<li><strong>Accent colour<\/strong> setting to match your brand.<\/li>\n<li><strong>Translation-ready<\/strong> \u2013 follows the site language (also with WPML and Polylang) or can be forced.<\/li>\n<li>Brand support for WooCommerce Brands, Perfect Brands for WooCommerce and YITH Brands.<\/li>\n<li>Classic themes (Astra, Enfold, Flatsome, OceanWP, Kadence, Storefront\u2026) and block themes.<\/li>\n<li>Compatible with WooCommerce HPOS.<\/li>\n<\/ul>\n\n<h4>FilterSmith Pro<\/h4>\n\n<p><a href=\"https:\/\/filtersmith.com\/\">Pro<\/a> is a separate add-on for shops that need more:<\/p>\n\n<ul>\n<li><strong>Smart text recognition<\/strong> \u2013 reads volume, power, size, voltage, flow rate, colour and material from product titles and descriptions (including specification lines and tables), so you get useful filters even when your products have no attributes.<\/li>\n<li><strong>Custom filter sets per category<\/strong> \u2013 choose, order and rename the filters for any category yourself.<\/li>\n<li><strong>One global order and names<\/strong> for the filters on all pages.<\/li>\n<li><strong>German, French and Spanish<\/strong> for the filters, the settings and the text recognition.<\/li>\n<li><strong>Colour swatches<\/strong> next to colour options.<\/li>\n<li>Priority email support.<\/li>\n<\/ul>\n\n<p>The free plugin is complete on its own and never limits the number of filters, products or categories.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin through <strong>Plugins &gt; Add New<\/strong> (WooCommerce must be active).<\/li>\n<li>Go to <strong>WooCommerce &gt; FilterSmith<\/strong> and click <strong>Build index<\/strong>. This analyses your products once; afterwards the index updates itself whenever you save or import a product.<\/li>\n<li>Open a product category in your shop. The filter bar appears above the product list.<\/li>\n<li>Using a page cache? Clear it once after changing settings.<\/li>\n<\/ol>\n\n<p>Want the filter somewhere else? Choose <strong>Placement: only via shortcode<\/strong> and add <code>[filtersmith]<\/code> to your category template.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20have%20to%20set%20up%20filters%20for%20every%20category%3F\"><h3>Do I have to set up filters for every category?<\/h3><\/dt>\n<dd><p>No. The plugin chooses the filters per page. You can hide attributes you never want as a filter and set the minimum number of products a page needs before filters are shown.<\/p><\/dd>\n<dt id=\"why%20does%20a%20category%20show%20no%20filters%3F\"><h3>Why does a category show no filters?<\/h3><\/dt>\n<dd><p>Pages with fewer products than the minimum (default 8) get no filter bar, and neither do parent categories where WooCommerce only shows subcategories. Both can be changed in the settings.<\/p><\/dd>\n<dt id=\"which%20attributes%20are%20used%3F\"><h3>Which attributes are used?<\/h3><\/dt>\n<dd><p>All WooCommerce product attributes, global and custom. Attributes with numbers (such as \"100 L\" or \"2000 W\") get a slider; text attributes get checkboxes.<\/p><\/dd>\n<dt id=\"my%20products%20have%20no%20attributes.%20can%20i%20still%20filter%20by%20size%20or%20colour%3F\"><h3>My products have no attributes. Can I still filter by size or colour?<\/h3><\/dt>\n<dd><p>Yes, with Pro. Its text recognition reads values such as \"150 liter\", \"2,5 kW\", \"\u00d8 110 mm\", \"230V\", \"black\" or \"stainless steel\" from product titles, and specification lines such as \"Volume: 80 L\" or a specification table from product descriptions.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>It hooks into the standard WooCommerce product loop and works with classic and block themes. If your theme uses custom markup for the product list, the CSS selectors can be changed with the <code>cwcf_js_selectors<\/code> filter.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20shop%3F\"><h3>Does it slow down my shop?<\/h3><\/dt>\n<dd><p>No. Filter counts come from an indexed table and the WooCommerce lookup tables, and the unfiltered view of each page is cached. On classic themes each filter change loads a light response with only the filter and the products (no header, menus or footer), which is several times smaller than the full page. When you are logged in as an administrator, the page source contains a comment with the time and number of database queries the filter used.<\/p><\/dd>\n<dt id=\"is%20it%20translatable%3F\"><h3>Is it translatable?<\/h3><\/dt>\n<dd><p>Yes. All texts can be translated on translate.wordpress.org; WordPress installs the translations automatically.<\/p><\/dd>\n<dt id=\"will%20it%20change%20my%20products%3F\"><h3>Will it change my products?<\/h3><\/dt>\n<dd><p>Never. The plugin only reads your products.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Translations now come from translate.wordpress.org instead of being bundled.<\/li>\n<li>The \"build the index\" reminder only shows on the Plugins and Dashboard screens.<\/li>\n<li>The name is now written as FilterSmith.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Mobile: the floating \"Filter\" button now also appears on themes that float products without clearing the list (for example Enfold).<\/li>\n<li>Mobile: the sort menu next to the Filter button keeps the plugin's own style (white, rounded, sort icon) when the theme styles every select.<\/li>\n<li>On\/off filters (on sale, in stock) use the same font size and weight as the other filter groups.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<li>Automatic filters per page: subcategory, brand, price, attributes, on sale, rating, stock.<\/li>\n<li>AJAX filtering, desktop filter bar, mobile filter sheet, sorting and products per page.<\/li>\n<li>Accent colour setting, currency follows the WooCommerce settings.<\/li>\n<li>Switch filter types on or off for the whole shop.<\/li>\n<li>Settings page with tabs, status cards, a category preview, one filters table and a save bar that is always in reach.<\/li>\n<li>Filters stay in place while filtering: a filter without options for the current selection is greyed out instead of disappearing.<\/li>\n<li>Large catalogues: only attributes that can become a filter are listed; codes (EAN, SKU, supplier codes) are off by default.<\/li>\n<li>Merge values that mean the same thing, or hide a value, for all products at once.<\/li>\n<li>Attributes that do not help (one value for nearly all products, values that repeat the brand, category-like attributes) are left out automatically.<\/li>\n<li>Block theme support and HPOS compatibility.<\/li>\n<li>Light AJAX responses on classic themes, deferred script loading.<\/li>\n<li>Mobile filter sheet: all groups start closed, selected values shown under each group, on\/off filters as switches, long lists shortened with \"Show all\".<\/li>\n<li>Dutch and English.<\/li>\n<\/ul>","raw_excerpt":"Product filters that set themselves up. Detects the right filters for every category, with a clean filter bar on desktop and a filter sheet on mobile.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/391594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=391594"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/deliciousmedianl"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=391594"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=391594"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=391594"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=391594"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=391594"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=391594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}