{"id":328253,"date":"2026-07-01T12:30:00","date_gmt":"2026-07-01T12:30:00","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/captain-search-filter\/"},"modified":"2026-07-30T11:28:30","modified_gmt":"2026-07-30T11:28:30","slug":"captain-advance-filter","status":"publish","type":"plugin","link":"https:\/\/fi.wordpress.org\/plugins\/captain-advance-filter\/","author":18476241,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Captain Advance Filter","header_author":"devangvachheta","header_description":"A powerful, lightweight AJAX filter and search plugin for WordPress \u2014 works with Elementor, Gutenberg, Bricks, and Shortcodes.","assets_banners_color":"085f63","last_updated":"2026-07-30 11:28:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":256,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"devangvachheta","date":"2026-07-01 12:29:24"},"1.1.0":{"tag":"1.1.0","author":"devangvachheta","date":"2026-07-08 10:35:00"},"1.2.0":{"tag":"1.2.0","author":"devangvachheta","date":"2026-07-30 11:28:30"}},"upgrade_notice":{"1.2.0":"<p>Adds Date Picker and Woo Rating filter types, plus Button\/Color\/Image display styles for Checkbox\/Radio (great for WooCommerce attribute filters). Also fixes the Range filter not applying Min\/Max, several Dark Mode visibility issues, and completes translation-readiness. Recommended for everyone.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3592667,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3592667,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3592667,"resolution":"1544x500","location":"assets","locale":"","width":3088,"height":1000},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3592667,"resolution":"772x250","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3628474,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=captain-advance-filter\",\"login\":true,\"preferredVersions\":{\"php\":\"latest\",\"wp\":\"latest\"},\"plugins\":[\"captain-advance-filter\"],\"steps\":[{\"step\":\"setSiteOptions\",\"options\":{\"blogname\":\"Captain Advance Filter Playground\"}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"captain-advance-filter\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":{"captain-advance-filter\/filter":{"name":"captain-advance-filter\/filter","title":"Filter"},"captain-advance-filter\/grid":{"name":"captain-advance-filter\/grid","title":"Grid"},"captain-advance-filter\/pagination":{"name":"captain-advance-filter\/pagination","title":"Pagination"}},"tagged_versions":["1.0.0","1.1.0","1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3592667,"resolution":"1","location":"assets","locale":"","width":1200,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3592667,"resolution":"2","location":"assets","locale":"","width":1200,"height":900}},"screenshots":{"1":"Dashboard overview","2":"Query builder","3":"Filter set configuration","4":"Frontend filter in action"}},"plugin_section":[],"plugin_tags":[5861,76538,148076,6033,37974],"plugin_category":[],"plugin_contributors":[220402],"plugin_business_model":[],"class_list":["post-328253","plugin","type-plugin","status-publish","hentry","plugin_tags-ajax-filter","plugin_tags-elementor","plugin_tags-gutenberg","plugin_tags-product-filter","plugin_tags-woocommerce-filter","plugin_contributors-devangvachheta","plugin_committers-devangvachheta","plugin_support_reps-devangvachheta"],"banners":{"banner":"https:\/\/ps.w.org\/captain-advance-filter\/assets\/banner-772x250.png?rev=3592667","banner_2x":"https:\/\/ps.w.org\/captain-advance-filter\/assets\/banner-1544x500.png?rev=3592667","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/captain-advance-filter\/assets\/icon-128x128.png?rev=3592667","icon_2x":"https:\/\/ps.w.org\/captain-advance-filter\/assets\/icon-256x256.png?rev=3592667","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/captain-advance-filter\/assets\/screenshot-1.png?rev=3592667","caption":"Dashboard overview"},{"src":"https:\/\/ps.w.org\/captain-advance-filter\/assets\/screenshot-2.png?rev=3592667","caption":"Query builder"}],"raw_content":"<!--section=description-->\n<p>Captain Advance Filter lets you build AJAX-powered filter and search experiences for any post type. Create custom queries and filter sets \u2014 then embed them via shortcodes, Gutenberg blocks, or Elementor widgets. No coding required.<\/p>\n\n<p><strong>Core Features:<\/strong><\/p>\n\n<ul>\n<li>AJAX filtering and pagination \u2014 no page reload<\/li>\n<li>Visual Query Builder \u2014 pick a post type, set ordering, and define which content gets shown<\/li>\n<li>Filter Set Builder \u2014 combine multiple filter fields and link them to a query<\/li>\n<li>Filter types: Checkbox, Radio, Dropdown, Range (slider), Search, A-Z alphabetical, Date Picker, and Woo Rating (WooCommerce star rating)<\/li>\n<li>Display styles for Checkbox\/Radio: plain list, pill Buttons, Color Swatches, or Image Swatches<\/li>\n<li>Taxonomy and meta-based filtering with WP_Query under the hood (tax_query \/ meta_query)<\/li>\n<li>Pagination styles: numbered pagination, load more button, and infinite scroll<\/li>\n<li>Optional result caching via WordPress transients for faster repeated queries<\/li>\n<li>React-powered admin dashboard with a clean, modern UI, including Dark Mode<\/li>\n<\/ul>\n\n<p><strong>WooCommerce Compatibility:<\/strong><\/p>\n\n<ul>\n<li>Woo Rating filter \u2014 filter products by \"N stars &amp; up\" using WooCommerce's stored average rating<\/li>\n<li>Color Swatch and Image Swatch display styles for product attribute filters (e.g. color, brand), with automatic fallback when no swatch plugin data is set<\/li>\n<li>WooCommerce-aware \"Shop Card\" result card style \u2014 shows price, sale badge, and an Add to Cart button<\/li>\n<li><code>{{price}}<\/code>, <code>{{sale_badge}}<\/code>, and <code>{{add_to_cart}}<\/code> tokens available in custom card templates when filtering Products<\/li>\n<\/ul>\n\n<p><strong>Shortcodes:<\/strong><\/p>\n\n<ul>\n<li><code>[captaf-filter id=\"1\"]<\/code> \u2014 render a filter set<\/li>\n<li><code>[captaf-grid query=\"query_key\"]<\/code> \u2014 render the filtered content grid<\/li>\n<li><code>[captaf-pagination query=\"query_key\"]<\/code> \u2014 render pagination controls<\/li>\n<li><code>[captaf-count query=\"query_key\"]<\/code> \u2014 render the result count<\/li>\n<\/ul>\n\n<p><strong>Builder Integrations:<\/strong><\/p>\n\n<ul>\n<li>Elementor \u2014 dedicated widgets for Filter, Grid, and Pagination, fully stylable in the Elementor editor<\/li>\n<li>Gutenberg \u2014 native blocks for Filter, Grid, and Pagination<\/li>\n<li>Bricks Builder \u2014 support coming soon<\/li>\n<\/ul>\n\n<p><strong>Performance:<\/strong><\/p>\n\n<ul>\n<li>Lightweight \u2014 admin and frontend assets load only on the pages that actually use the plugin<\/li>\n<li>No jQuery dependency on the frontend<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin from the <strong>Plugins<\/strong> screen in WordPress<\/li>\n<li>Go to <strong>Captain Advance Filter<\/strong> in your admin menu<\/li>\n<li>Create a Query, then a Filter Set linked to that query<\/li>\n<li>Embed using <code>[captaf-filter id=\"1\"]<\/code> and <code>[captaf-grid query=\"your_query_key\"]<\/code><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20without%20elementor%3F\"><h3>Does it work without Elementor?<\/h3><\/dt>\n<dd><p>Yes. Shortcodes and Gutenberg blocks are supported out of the box. Elementor is an optional integration.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Filter Products by attribute (with Color\/Image Swatch or Button display styles), price (Range filter), and star rating (Woo Rating filter). The \"Shop Card\" result style also shows price, sale badge, and an Add to Cart button. WooCommerce is optional \u2014 the plugin works on any post type without it.<\/p><\/dd>\n<dt id=\"can%20i%20filter%20custom%20post%20types%3F\"><h3>Can I filter custom post types?<\/h3><\/dt>\n<dd><p>Yes. Any publicly viewable post type registered in WordPress can be used as a query source.<\/p><\/dd>\n<dt id=\"are%20the%20public%20rest%20endpoints%20secure%3F\"><h3>Are the public REST endpoints secure?<\/h3><\/dt>\n<dd><p>Yes. The <code>\/filter<\/code> endpoint verifies that the queried post type is publicly viewable before returning results. The <code>\/filter-options<\/code> endpoint only exposes options for publicly queryable taxonomies. No private data is accessible through these endpoints.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20know%20how%20to%20code%3F\"><h3>Do I need to know how to code?<\/h3><\/dt>\n<dd><p>No. Everything \u2014 queries and filter sets \u2014 is configured through the visual admin dashboard. Shortcodes are provided automatically once you create a query or filter set.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20down%20my%20site%3F\"><h3>Will this slow down my site?<\/h3><\/dt>\n<dd><p>No. Plugin assets are only enqueued on pages where you actually use a shortcode, Gutenberg block, or Elementor widget from Captain Advance Filter.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<p><strong>New filter types, WooCommerce compatibility, and Dark Mode fixes.<\/strong><\/p>\n\n<ul>\n<li>Added: New \"Date Picker\" filter type \u2014 start\/end date range filtering against the publish date.<\/li>\n<li>Added: New \"Woo Rating\" filter type \u2014 \"N stars &amp; up\" filtering against WooCommerce's stored product average rating (requires WooCommerce).<\/li>\n<li>Added: New \"Display Style\" option for Checkbox and Radio filters \u2014 render the same taxonomy options as a plain List (default), pill-style Buttons, Color Swatches, or Image Swatches, instead of adding separate filter types for each. Color\/Image swatches automatically pick up swatch data from common WooCommerce attribute-swatch plugin term meta, with a graceful fallback (auto-generated color, or label text) when none is set.<\/li>\n<li>Fixed: Range filter's Min\/Max values were never actually sent to the results query \u2014 the values you typed had no effect. They're now correctly applied, and only sent once you actually narrow the range away from its full bounds.<\/li>\n<li>Fixed: Admin dashboard toggle switches (e.g. Settings \u2192 Enable Query Cache) used a hardcoded light-gray track color, so they still looked washed-out\/white in Dark Mode instead of adapting to the theme.<\/li>\n<li>Fixed: Disabled fields (e.g. \"Cache TTL\" when \"Enable Query Cache\" is off) had no disabled styling at all \u2014 no dimming, no \"not-allowed\" cursor \u2014 so they looked editable even though clicking\/typing did nothing.<\/li>\n<li>Fixed: The active tab indicator on Settings and Docs pages (e.g. \"General\" vs \"Performance\") relied on a drop shadow to show which tab was selected \u2014 invisible in Dark Mode, making it unclear which tab was active. Active tabs now get a clearly visible tinted background and border in Dark Mode.<\/li>\n<li>Fixed: The divider line under toggle rows was hardcoded to a near-white color, showing as a bright white line in Dark Mode instead of a subtle divider.<\/li>\n<li>Fixed: Tab hover state in Dark Mode showed a bright white flash (inherited from the Light Mode hover style) instead of a subtle highlight.<\/li>\n<li>Fixed: Toggle row description text didn't have a Dark Mode color override.<\/li>\n<li>Fixed (frontend result cards \u2014 Classic, Minimal, Shop Card, Dark Overlay): card title, excerpt, and meta text colors were hardcoded instead of using the theme-aware card tokens, so they could become unreadable (dark text on a dark card) when a visitor's OS\/browser was in Dark Mode.<\/li>\n<li>Fixed (frontend result cards): posts with no featured image rendered a completely unstyled, invisible placeholder box, making the grid look broken. Now shows a proper icon placeholder tile.<\/li>\n<li>Fixed (frontend result cards): the meta separator dot's CSS class didn't match the class actually rendered by the JS, so it was never styled.<\/li>\n<li>Fixed (frontend result cards): the card border color was set but no border width\/style was ever defined, so it had no visible effect.<\/li>\n<li>Improved: Completed translation-readiness (<code>wp.i18n<\/code>) coverage across the admin dashboard \u2014 previously only partially applied to one screen, now covers every page, component, and error message.<\/li>\n<li>Improved (frontend result cards): new cards appended via Load More \/ Infinite Scroll now fade and rise into place instead of popping in abruptly.<\/li>\n<li>Improved (frontend result cards): general visual polish across all four card styles \u2014 refined shadows, sale badge, price layout, buttons, and Dark Overlay gradient.<\/li>\n<li>Improved: Button\/Color\/Image display styles track their selected state via both CSS and JS, so the highlight still works correctly on older browsers without <code>:has()<\/code> support.<\/li>\n<\/ul>\n\n<p>Not included in this release (planned for later): a \"Tabbing\" category-switcher display style, and wishlist add\/remove \u2014 both are on the roadmap.<\/p>\n\n<h4>1.1.0<\/h4>\n\n<p><strong>WooCommerce-aware card styles, split filters across the page, and a mobile-friendly admin dashboard.<\/strong><\/p>\n\n<ul>\n<li>Added: New \"Card Style\" tab in the Query editor \u2014 choose between Classic, Minimal, Shop Card (WooCommerce-aware, with price\/sale badge\/Add to Cart), and Dark Overlay layouts per query.<\/li>\n<li>Added: WooCommerce product data (price, sale status, Add to Cart) is now available to grid cards and custom card templates when the connected query targets Products.<\/li>\n<li>Added: <code>{{price}}<\/code>, <code>{{sale_badge}}<\/code>, and <code>{{add_to_cart}}<\/code> tokens for custom card templates.<\/li>\n<li>Added: <code>only<\/code> attribute on <code>[captaf-filter]<\/code> (and matching \"Only These Filters\" fields in the Elementor widget and Gutenberg block) \u2014 show just specific filter(s) from a Filter Set. Place pieces of one filter set independently anywhere on the page (e.g. a dropdown in the header, checkboxes in the sidebar) \u2014 every piece still updates the same results grid.<\/li>\n<li>Added: Filter Sets list now has a \"Split into N individual shortcodes\" toggle per row \u2014 expands to show each filter's own ready-made shortcode (with <code>only=<\/code> already filled in) plus a Copy button, so you don't need to remember or type filter keys by hand. The same per-filter shortcode also shows inline in the Filter Set editor, next to each filter's Label\/Key fields.<\/li>\n<li>Added: Responsive mobile navigation for the admin dashboard \u2014 a hamburger menu opens an off-canvas sidebar on small screens.<\/li>\n<li>Changed: Filter Sets editor is now an inline page (matching Queries) instead of a popup modal \u2014 title swaps to \"Edit Filter Set\", action button becomes \"Back\".<\/li>\n<li>Fixed: Elementor widgets and Gutenberg blocks did not load their CSS\/JS on the live frontend \u2014 only shortcode usage was detected before, so filters rendered unstyled and without AJAX on pages built with the Elementor widgets or Gutenberg blocks. Asset loading now also detects Gutenberg blocks and Elementor widget data correctly.<\/li>\n<li>Fixed: Plugin description referenced Bricks Builder as a supported integration without qualification. Updated to clearly state Bricks support is coming soon, matching the Builder Integrations section.<\/li>\n<li>Removed: Unused \"Layouts\" feature (database table, REST endpoint, and related Layout ID fields in the Elementor widget and Gutenberg block) that had no admin UI to create layouts and could never be used.<\/li>\n<li>Improved: All admin dashboard, block editor, and frontend JS strings are now translation-ready via <code>wp.i18n<\/code>.<\/li>\n<li>Improved: Deduplicated the compiled admin dashboard stylesheet, cutting its size by roughly 30% and fixing a broken CSS selector left over from a previous patch.<\/li>\n<li>Improved: Redesigned the per-filter shortcode callout to be properly theme-aware (fixes it looking broken\/mismatched in dark mode) and visually clearer.<\/li>\n<li>Improved: Cleaned up redundant code in admin menu registration.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<p><strong>Initial stable release.<\/strong><\/p>\n\n<ul>\n<li>Added six filter types: Checkbox, Radio, Dropdown, Range Slider, Search, A\u2013Z Alphabetical<\/li>\n<li>Added three pagination modes: Numbered Pagination, Load More, Infinite Scroll<\/li>\n<li>Added Elementor widgets.<\/li>\n<li>Added Gutenberg blocks.<\/li>\n<li>Added Visual Query Builder for creating reusable post queries.<\/li>\n<li>Added Filter Set Builder with support for multiple filters.<\/li>\n<li>Added customizable grid layouts with column switcher support.<\/li>\n<li>Added AJAX filtering with live result updates.<\/li>\n<li>Added live result count shortcode.<\/li>\n<li>Added four frontend shortcodes: <code>[captaf-filter]<\/code>, <code>[captaf-grid]<\/code>, <code>[captaf-pagination]<\/code>, <code>[captaf-count]<\/code><\/li>\n<li>Added caching support for improved performance.<\/li>\n<li>Added React-powered admin dashboard.<\/li>\n<li>Added integrations page and plugin settings.<\/li>\n<li>Added REST API for frontend filtering and admin management.<\/li>\n<li>Added conditional asset loading for better frontend performance.<\/li>\n<li>Added security hardening and input sanitization.<\/li>\n<li>Added dark and light theme groundwork for the admin dashboard (theme switcher UI present, coming soon).<\/li>\n<\/ul>","raw_excerpt":"Lightweight AJAX filter &amp; search plugin for WordPress and WooCommerce, with Elementor, Gutenberg, and Shortcode support.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/328253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=328253"}],"author":[{"embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/devangvachheta"}],"wp:attachment":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=328253"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=328253"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=328253"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=328253"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=328253"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=328253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}