=== ACE Content Filters – AJAX Filters for Site Content ===
Contributors: acewpdev
Tags: filter, ajax, custom post type, taxonomy, search
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Free AJAX filters for posts, pages, and custom post types, plus instant content search. Unlimited filter sets and panels, advanced styling, and Elementor widgets.

== Description ==

ACE Content Filters gives you a practical way to build content filters once and reuse them across your site — and also an instant content search you can drop into headers, homepages, and landing pages.

Use it for blogs and magazines, portfolios, directories, events, courses, jobs, real estate listings, knowledge bases, case studies, team listings, recipes, or any CPT-driven site.

Create saved filter sets for taxonomies, search, author, and date. Style them to match your site, then place them individually or inside reusable filter panels. When visitors should jump straight to an item instead of narrowing a listing, add a dedicated Content search: typeahead matching on title and optional excerpt, with a dropdown that shows image, title, excerpt, and content type.

Whether you are building a sidebar, a top bar, a header search, or a custom Elementor layout, you can keep the experience consistent without rebuilding the same setup for every page.

**Instant content search**

* Separate dashboard object — not mixed into filter sets or panels
* Own shortcode: `[acewpcf_content_search id="..."]`
* Own Elementor widget: ACE Content Search
* Typeahead dropdown with image, title, excerpt, and optional content-type label
* Match by title and/or excerpt, with debounce and a “View all” link to site search results for that content type
* Optional scope limit: keep a search box inside chosen taxonomies for the selected content type
* Full appearance controls for the search box and dropdown so it matches your site branding

**Filters and panels**

The free plugin already includes:

* Unlimited saved filter sets for categories, tags, and custom taxonomies
* Search, author, and date filters that work together with taxonomy filters
* Saved filter panels for sidebars, top bars, and grouped layouts
* Instant content search for headers, homepages, and landing pages, with an optional limit to chosen taxonomies
* AJAX filtering with a shared results selector, URL filter state, and browser history
* Single-select and multi-select, with optional AND or OR matching
* Auto-include child terms when a parent is selected, plus optional nested term indentation
* Changeable shortcode IDs for saved filter sets, filter panels, and content searches
* Content counts and labels, with static or contextual count modes and optional panel-wide overrides
* Hide terms with no matching content, per filter or as a panel override
* In-filter term search for long lists, with a search box option and a panel override
* Colour swatches for any taxonomy filter
* Panel headings, grouped heading blocks inside panels, and collapsible filters
* Empty-results messaging
* Horizontal or vertical layout, plus styling controls including responsive and mobile presentation
* Live appearance preview in the filter editor
* Theme-font inheritance by default, with optional Google Fonts loading when you explicitly enable it
* Mobile panel toggle, close button, and per-panel text for the Filters label and Clear all action
* Elementor widgets for saved filters, panels, and content search, plus shortcode placement
* Reusable output for archives, listing pages, Elementor templates, and custom content sections

Use one saved filter when you need a focused control, or combine multiple saved filters into a panel for a complete filtering experience. Content search is separate on purpose: place it where visitors should find an item quickly, without changing how your listing filters work.

Placement options:

* Elementor widgets for saved filters, saved panels, and content searches
* Shortcodes for Wonderblocks and other website builders
* Block editor, widgets, and theme template areas

For WooCommerce stores, **ACE Product Filters** is a separate free plugin built specifically for product catalogs — category, attribute, taxonomy, and price filters with WooCommerce-aware queries and storefront-specific features not found here. You can find it at https://wordpress.org/plugins/ace-products-filters/

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/` or install the zip from the Plugins screen.
2. Activate ACE Content Filters.
3. Go to ACE Content Filters in the dashboard.
4. Create your first filter set, then optionally group filters into a panel or add a content search.
5. Place the saved filter, panel, or content search with the matching Elementor widget, the block editor, a shortcode widget, or a template area.

== Usage ==

1. Create a filter set and choose the content type (posts, pages, or a custom post type).
2. Choose a source: categories, tags, custom taxonomy, search, author, or date.
3. Configure behavior, labels, counts, layout direction, and design settings.
4. Enable AJAX when you want in-place content updates and set one shared results selector.
5. Place the saved filter directly, or create a filter panel and combine multiple saved filters into one reusable block.
6. Insert the result through the matching Elementor widget or shortcode wherever your layout needs it.

Shortcodes:

* `[acewpcf_filter id="your-filter-id"]`
* `[acewpcf_filter_panel id="your-panel-id"]`
* `[acewpcf_content_search id="your-search-id"]`

**Instant content search**

1. Open ACE Content Filters and create a Content search.
2. Choose the content type, matching (title and/or excerpt), optionally limit results to selected terms, then set dropdown content and appearance.
3. Place it with `[acewpcf_content_search id="your-id"]` or the ACE Content Search Elementor widget.

Visitors type a title (or excerpt), pick a match from the dropdown, and go straight to that item. Optional “View all” opens site search results for the selected content type. This does not filter a listing grid, and it is separate from the Search filter source and from in-filter term search inside long filter lists.

== Screenshots ==

= 1. Content Filter Dashboard =
Manage saved filter sets from one place, control Google Fonts loading, and start new filter or content-search setups from the main dashboard.

= 2. Filter panels and content searches =
Group saved filters into reusable panels, and manage instant content searches for pages, posts, or other content types.

= 3. Appearance preview and responsive layout =
Preview default, active, and hover states across desktop, laptop, tablet, and mobile, then tune responsive layout behaviour.

= 4. Storefront content filters =
Show hierarchical category filters with counts beside a live content listing, with nested terms and an active selection state.

= 5. Instant content search =
Typeahead content search with thumbnail and title in the dropdown, plus a View all results link.

== Frequently Asked Questions ==

= Is the free version actually powerful enough to use on its own? =
Yes. The free plugin already includes unlimited saved taxonomy, search, author, and date filters, saved filter panels, instant content search, AJAX updates, styling controls, mobile panel settings, and Elementor support.

= Does it require WooCommerce? =
No. ACE Content Filters works without WooCommerce.

= Does it work only with Elementor? =
No. Elementor is supported through dedicated widgets for filters, panels, and content search. The plugin also works with shortcodes in regular site pages, widgets, and template areas.

= Does it support custom post types? =
Yes. Each filter set targets a content type you choose, including public custom post types and their taxonomies.

= Does it support AJAX filtering? =
Yes. Enable AJAX and enter one stable CSS selector for the shared results wrapper.

= Can I combine multiple saved filters together? =
Yes. Create saved filter sets individually, then group them into saved filter panels for sidebars, top bars, or multi-filter layouts.

= Can I add a content search box to a header or homepage? =
Yes. Create a Content search from the dashboard, then place it with `[acewpcf_content_search id="your-id"]` or the ACE Content Search Elementor widget. Visitors type a title or excerpt and choose a match from the dropdown. This is separate from listing filters, from the Search filter source, and from in-filter term search.

= Is instant content search the same as the Search filter? =
No. The Search filter source is a text box that narrows a results grid through AJAX. Instant content search is a standalone typeahead: click a result to open that item, or use View all to open site search results.

= Can I limit a content search to one category? =
Yes. In the Content search editor, choose a content type, then use Limit results to, pick a taxonomy, and tick the terms this box should stay inside. Leave it on All to search the whole content type.

= Can I filter WooCommerce products with this plugin? =
No. ACE Content Filters targets posts, pages, and other site content. WooCommerce products need price sliders, stock filters, attribute queries, and shop-archive integration — that is a different problem handled by ACE Product Filters, a separate free plugin at https://wordpress.org/plugins/ace-products-filters/

= Can I use it alongside ACE Product Filters? =
Yes. They are two separate free plugins with different jobs. When both are active, the admin sidebar shows ACE Filters with Products and Contents children.

= Does uninstall delete my saved filters? =
No. At the moment, deleting the plugin does not automatically remove saved filter sets, filter panels, content searches, or related display settings from the database.

== External services ==

ACE Content Filters can optionally load Google Fonts stylesheets only when a site owner enables Google Fonts loading in the plugin settings and uses Google Font families in filter designs, content search designs, or live preview.

By default, ACE Content Filters does not request Google Fonts on the frontend or in the plugin admin.

These requests can happen on ACE Content Filters admin pages and on frontend pages where ACE Content Filters output is rendered.

Service provider:

* Google Fonts API: https://fonts.googleapis.com/
* Google Fonts static files: https://fonts.gstatic.com/

What may be sent:

* The site visitor or admin user's IP address
* Browser and device information
* The requesting site URL through normal HTTP request metadata

Service terms and policies:

* Google Fonts Terms of Service: https://developers.google.com/fonts/terms
* Google Privacy Policy: https://policies.google.com/privacy

== Changelog ==

= 1.0.0 =
* Initial stable release — AJAX filtering, filter panels, search / author / date filters, instant content search, Elementor widgets, and shareable URL state.
