=== Webcasata Content Filter ===
Contributors: webcasata
Tags: content filter, tabs, ajax, posts, showcase
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Create tabbed, AJAX-filtered showcases of your posts. No page reload. SEO-friendly initial render.

== Description ==

Webcasata Content Filter lets you build a tabbed post filter (by category or any taxonomy) and drop it
anywhere with a shortcode. Visitors switch tabs via AJAX -- no page reload -- while the first tab is
rendered server-side so search engines see real content.

= Free features (this version) =
* Unlimited filters, each with its own shortcode or Gutenberg block
* Filter by any post type + taxonomy, with tabs generated from that taxonomy's terms
* AJAX tab switching, no page reload, with skeleton loading placeholders
* URL-shareable tabs (bookmark or share a link straight to a specific tab) and "remember my last tab" across visits
* Load More button or Infinite Scroll, your choice per filter
* Accessible, keyboard-navigable tabs with smooth fade-in animations
* 5 card templates: Classic, Cards, Magazine, Minimal, News
* Full styling controls: tab colors, card radius/shadow/gap/columns, typography
* Gutenberg block with a live preview and per-block overrides (posts per page, layout)
* Transient-based output caching with automatic invalidation, lazy-loaded images, minified assets, and conditional asset loading

= Pro =
Premium templates, a visual drag-and-drop layout builder, an advanced query builder, click analytics,
and import/export are available in Webcasata Content Filter Pro:
https://www.webcasata.com/webcasata-content-filter/

== Installation ==

1. Upload the plugin folder to /wp-content/plugins/
2. Activate through the "Plugins" menu in WordPress
3. Go to "Content Filter" in the admin menu and create your first filter
4. Copy the generated shortcode into any post or page, or add the "Webcasata Content Filter" block instead

== Frequently Asked Questions ==

= Does this plugin have hooks for developers? =

Yes -- every action and filter this plugin exposes is documented with a working code example in
docs/DEVELOPER.md inside the plugin folder, and directly in code as a comment above each
do_action()/apply_filters() call.

== Changelog ==

= 1.1.4 =
* The "Upgrade to Pro" admin banner is now permanently dismissible: clicking its close button
  hides it right away and remembers the dismissal per admin user, so it does not come back on a
  later visit, a different screen, or a new browser session.

= 1.1.3 =
* Changed the wbcf_after_save_filter extension hook to pass only the filter ID, not request
  data -- consumers now read and sanitize their own specific form field directly from $_POST
  inside their own callback, matching how core's save_post hook works, rather than receiving
  raw request data as a hook argument.

= 1.1.2 =
* Tested up to WordPress 7.1.
* Simplified an internal function name back to the plugin's standard "wbcf" prefix for consistency
  (was temporarily longer than necessary during an earlier naming fix).
* Documented, in code comments, why template/view files' local variables aren't further prefixed:
  they're always included from within a method's scope, never loaded standalone.

= 1.1.0 =
* All internal identifiers (classes, functions, constants, options, postmeta keys, the custom post
  type slug, shortcode tag, AJAX actions, and script/style handles) renamed from the "wcf"/"WCF"
  prefix to "wbcf"/"WBCF" to meet the required minimum prefix length. The plugin slug and text
  domain are unchanged. Existing test filters will need to be recreated after updating, since the
  custom post type's internal slug changed.
* Escaped output for post titles and author names in every template (previously relied on
  the_title()/the_author() directly, which do not escape by default).
* Unslashed $_POST once, centrally, before passing it to the wbcf_after_save_filter extension hook,
  rather than passing the raw superglobal.

= 1.0.6 =
* Added DEVELOPER.md -- full reference for every action/filter hook this plugin exposes, with
  working code examples, covering both this plugin and Pro's own hooks.
* Various small additive hooks and a settings-application refactor added across 1.0.1-1.0.6, all in
  support of Pro's builder modules (Visual Layout Builder, Advanced Query Builder, Analytics,
  Import/Export) -- see DEVELOPER.md for the full list; nothing here changes existing behavior.

= 1.0.0 =
* Initial release: core filtering engine, admin UI, AJAX, 5 card templates, styling system,
  Gutenberg block with live preview, output caching, and Load More/Infinite Scroll pagination.
