{"id":375872,"date":"2026-10-01T08:11:48","date_gmt":"2026-10-01T08:11:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/walstar-smart-ajax-filter\/"},"modified":"2026-10-02T10:02:39","modified_gmt":"2026-10-02T10:02:39","slug":"prostil-smart-ajax-filter","status":"publish","type":"plugin","link":"https:\/\/tl.wordpress.org\/plugins\/prostil-smart-ajax-filter\/","author":23574065,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Universal AJAX Filter","header_author":"Prostil","header_description":"Build AJAX-powered WordPress filters visually without writing AJAX handlers. Supports multiple search, dropdown, select, checkbox and radio filters with AJAX results, pagination, CPTs, products and Elementor Loop Item templates. Includes a native Elementor widget so filters can be configured directly in the builder.","assets_banners_color":"f2f8fd","last_updated":"2026-10-02 10:02:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/prostilmangasule\/profile\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":89,"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":"prostilmangasule","date":"2026-10-02 10:02:39","revision":3724521},"1.2.0":{"tag":"1.2.0","author":"prostilmangasule","date":"2026-10-01 10:11:32","revision":3722867},"1.2.1":{"tag":"1.2.1","author":"prostilmangasule","date":"2026-10-01 09:22:19","revision":3722776}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3724411,"resolution":"128x128","location":"assets","locale":"","width":1024,"height":1024}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3724350,"resolution":"772x250","location":"assets","locale":"","width":2048,"height":768}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.2.0","1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3724434,"resolution":"1","location":"assets","locale":"","width":1886,"height":857},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3724434,"resolution":"2","location":"assets","locale":"","width":1905,"height":871},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3724434,"resolution":"3","location":"assets","locale":"","width":1859,"height":812},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3724434,"resolution":"4","location":"assets","locale":"","width":1883,"height":816},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3724434,"resolution":"5","location":"assets","locale":"","width":417,"height":802},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3724434,"resolution":"6","location":"assets","locale":"","width":340,"height":801},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3724434,"resolution":"7","location":"assets","locale":"","width":341,"height":770}},"screenshots":{"1":"Elementor widget \u2013 Layout settings (filters position, sidebar width, columns, gap).","2":"Elementor widget \u2013 Query &amp; Results settings with Loop Item template selection.","3":"Elementor widget \u2013 Filter controls (Search, Dropdown, Checkbox) with AND\/OR logic.","4":"Smart Ajax Filter widget in the Elementor editor with live preview.","5":"Shortcode usage and the frontend filter output with results grid.","6":"Admin \u2013 Query, Frontend, and Elementor Loop Item Template settings.","7":"Admin \u2013 Add AJAX Filter screen with Basic Settings and Multiple Filters."}},"plugin_section":[],"plugin_tags":[5861,1794,76538,6033,4431],"plugin_category":[],"plugin_contributors":[259800,283842,259798,259633],"plugin_business_model":[],"class_list":["post-375872","plugin","type-plugin","status-publish","hentry","plugin_tags-ajax-filter","plugin_tags-custom-post-type","plugin_tags-elementor","plugin_tags-product-filter","plugin_tags-search-filter","plugin_contributors-pratapvashi123","plugin_contributors-prostilmangasule","plugin_contributors-walstarmedia","plugin_contributors-walstartechnologies","plugin_committers-prostilmangasule"],"banners":{"banner":"https:\/\/ps.w.org\/prostil-smart-ajax-filter\/assets\/banner-772x250.png?rev=3724350","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/prostil-smart-ajax-filter\/assets\/icon-128x128.png?rev=3724411","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/prostil-smart-ajax-filter\/assets\/screenshot-1.png?rev=3724434","caption":"Elementor widget \u2013 Layout settings (filters position, sidebar width, columns, gap)."},{"src":"https:\/\/ps.w.org\/prostil-smart-ajax-filter\/assets\/screenshot-2.png?rev=3724434","caption":"Elementor widget \u2013 Query &amp; Results settings with Loop Item template selection."},{"src":"https:\/\/ps.w.org\/prostil-smart-ajax-filter\/assets\/screenshot-3.png?rev=3724434","caption":"Elementor widget \u2013 Filter controls (Search, Dropdown, Checkbox) with AND\/OR logic."},{"src":"https:\/\/ps.w.org\/prostil-smart-ajax-filter\/assets\/screenshot-4.png?rev=3724434","caption":"Smart Ajax Filter widget in the Elementor editor with live preview."},{"src":"https:\/\/ps.w.org\/prostil-smart-ajax-filter\/assets\/screenshot-5.png?rev=3724434","caption":"Shortcode usage and the frontend filter output with results grid."},{"src":"https:\/\/ps.w.org\/prostil-smart-ajax-filter\/assets\/screenshot-6.png?rev=3724434","caption":"Admin \u2013 Query, Frontend, and Elementor Loop Item Template settings."},{"src":"https:\/\/ps.w.org\/prostil-smart-ajax-filter\/assets\/screenshot-7.png?rev=3724434","caption":"Admin \u2013 Add AJAX Filter screen with Basic Settings and Multiple Filters."}],"raw_content":"<!--section=description-->\n<p>Smart Ajax Filter lets you build front-end filter bars that refresh results instantly via AJAX \u2014 without writing a single AJAX handler. Create as many filter sets as you need from a simple admin screen, then drop each one into a page using a shortcode or the plugin's own Elementor widget.<\/p>\n\n<p>Each filter set can combine multiple fields \u2014 Search, Dropdown\/Select, Checkbox, and Radio \u2014 bound to any taxonomy and its terms, and can drive one of four result actions:<\/p>\n\n<ul>\n<li><strong>Query Posts<\/strong> \u2013 filter standard WordPress posts<\/li>\n<li><strong>Query Products<\/strong> \u2013 filter WooCommerce-style product post types<\/li>\n<li><strong>Filter CPT<\/strong> \u2013 filter any custom post type on your site<\/li>\n<li><strong>Load Elementor Template<\/strong> \u2013 render matching items through an Elementor Pro Loop Item template<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Visual filter builder<\/strong> \u2014 add, reorder, and remove filter fields from the admin screen; no code editing needed.<\/li>\n<li><strong>Multiple filter types<\/strong> \u2014 Search, Dropdown\/Select, Checkbox, and Radio, each bindable to any taxonomy and specific terms.<\/li>\n<li><strong>Four result actions<\/strong> \u2014 Query Posts, Query Products, Filter CPT, or Load an Elementor Template, so one tool covers blogs, shops, and custom content types.<\/li>\n<li><strong>Shortcode support<\/strong> \u2014 every saved filter gets its own shortcode, e.g. <code>[psaf_smart_ajax_filter id=\"12\"]<\/code>, ready to paste into any page, post, or widget area.<\/li>\n<li><strong>Native Elementor widget<\/strong> \u2014 search for \"Smart Ajax Filter\" in the Elementor panel and configure a filter directly inside the page editor, with no shortcode or saved filter needed.<\/li>\n<li><strong>Elementor normal grid support<\/strong> \u2014 when using the standard Elementor editor, filtered results can be displayed using a regular Elementor grid without requiring Elementor Pro.<\/li>\n<li><strong>Elementor Pro Loop Grid support<\/strong> \u2014 filter results can be rendered using Elementor Pro Loop Grid and Loop Item templates, allowing you to use your custom Loop Item designs. <strong>Elementor Pro is required for Loop Grid\/Loop Item functionality.<\/strong><\/li>\n<li><strong>Custom results target<\/strong> \u2014 results load by default into a <code>.psaf-results<\/code> container, or you can point the filter at your own CSS selector to filter an existing grid on the page.<\/li>\n<li><strong>Configurable pagination and sorting<\/strong> \u2014 set results per page, order-by field, and sort direction per filter.<\/li>\n<li><strong>Custom loading and empty-state text<\/strong> \u2014 set your own \"Loading...\" and \"No results found.\" messages per filter.<\/li>\n<li><strong>Multiple filters per site<\/strong> \u2014 build unlimited independent filter sets, each with its own configuration, shortcode, and widget instance.<\/li>\n<li><strong>Lightweight front end<\/strong> \u2014 vanilla AJAX requests with dedicated frontend CSS\/JS assets, only loaded where needed.<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Go to <strong>Smart Ajax Filter \u2192 Add New<\/strong> in the WordPress admin menu.<\/li>\n<li>Choose a post type, result action (Query Posts, Query Products, Filter CPT, or Load Elementor Template), results-per-page, and sort order.<\/li>\n<li>Add one or more filter fields (Search, Dropdown\/Select, Checkbox, Radio) and bind each to a taxonomy and, optionally, specific terms.<\/li>\n<li>Save the filter \u2014 you'll get a ready-to-use shortcode, e.g. <code>[psaf_smart_ajax_filter id=\"12\"]<\/code>.<\/li>\n<li>Paste the shortcode into any page or post, <strong>or<\/strong> open Elementor and drag in the \"Smart Ajax Filter\" widget to configure the same filter directly in the builder.<\/li>\n<li>Visitors filter results instantly on the front end \u2014 no page reload.<\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8 or higher.<\/li>\n<li>PHP 7.4 or higher.<\/li>\n<li>Elementor (free) is only required if you want to use the native Elementor widget \u2014 the shortcode works with any theme or page builder.<\/li>\n<li>Elementor Pro is only required if you choose the \"Load Elementor Template\" result action to render results through a Loop Item template.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>prostil-smart-ajax-filter<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin zip through <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>Smart Ajax Filter \u2192 Add New<\/strong> to create your first filter.<\/li>\n<li>Copy the generated shortcode into a page\/post, or add the \"Smart Ajax Filter\" widget from the Elementor panel.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20elementor%20to%20use%20this%20plugin%3F\"><h3>Do I need Elementor to use this plugin?<\/h3><\/dt>\n<dd><p>No. The shortcode <code>[psaf_smart_ajax_filter id=\"X\"]<\/code> works on any theme or page builder. The Elementor widget is an optional, additional way to add and configure a filter directly inside the Elementor editor.<\/p><\/dd>\n<dt id=\"can%20i%20filter%20woocommerce%20products%3F\"><h3>Can I filter WooCommerce products?<\/h3><\/dt>\n<dd><p>Yes. Choose the \"Query Products\" result action and set the post type accordingly when creating a filter.<\/p><\/dd>\n<dt id=\"can%20i%20filter%20a%20custom%20post%20type%3F\"><h3>Can I filter a custom post type?<\/h3><\/dt>\n<dd><p>Yes. Choose \"Filter CPT\" as the result action and select your custom post type from the Post Type dropdown.<\/p><\/dd>\n<dt id=\"can%20filters%20target%20an%20existing%20results%20grid%20on%20my%20page%20instead%20of%20generating%20their%20own%3F\"><h3>Can filters target an existing results grid on my page instead of generating their own?<\/h3><\/dt>\n<dd><p>Yes. By default results load into a <code>.psaf-results<\/code> container, but you can set a custom CSS selector as the results target in the filter settings to hook into your own existing grid.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20elementor%20loop%20item%20templates%3F\"><h3>Does this work with Elementor Loop Item templates?<\/h3><\/dt>\n<dd><p>Yes, if Elementor Pro is active. Set the result action to \"Load Elementor Template\" and select the Loop Item template you want filtered results rendered through.<\/p><\/dd>\n<dt id=\"can%20i%20create%20more%20than%20one%20filter%3F\"><h3>Can I create more than one filter?<\/h3><\/dt>\n<dd><p>Yes. Create as many independent filter sets as you need from <strong>Smart Ajax Filter \u2192 Add New<\/strong> \u2014 each has its own configuration, shortcode, and can also be added as a separate Elementor widget instance.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: visual filter builder, Search\/Dropdown\/Select\/Checkbox\/Radio filter types, AJAX results, shortcode support for Posts, Products, and custom post types.<\/li>\n<\/ul>","raw_excerpt":"Build AJAX-powered filters for posts, products, and custom post types visually \u2014 with a shortcode and a native Elementor widget, no code required.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/375872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=375872"}],"author":[{"embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/prostilmangasule"}],"wp:attachment":[{"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=375872"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=375872"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=375872"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=375872"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=375872"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=375872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}