// Changelog (older versions)


  • July 24, 2017
  • Fix: template detection issue for some sites using FacetWP + WooCommerce + Yoast SEO (workaround for WP core bug #40393)
  • Removed front-end nonces (fixes caching issues)


  • July 7, 2017
  • New: added `wp_doing_ajax()` polyfill for WP < 4.7
  • Fix: add-on updater wasn’t naming plugin folders properly
  • Fix: WooCommerce PHP notice (changed to `$product->get_type()`)
  • Fix: JS `show_expanded` console error
  • Fix: issue with date range facets during pagination
  • Fix: skip template auto-detection for non-FWP ajax requests
  • Fix: EDD [ downloads ] query detection (props @spencerfinnell)
  • Added support for `loop_no_results` hook (arriving in WP 4.9)


  • June 28, 2017
  • Fix: issue with ACF fields in “Other data source” (needs a re-index)


  • June 19, 2017
  • New: template auto-detection for archive / shop pages (no need to edit template files!)
  • New: “Show expanded” setting for hierarchical checkbox facets
  • New: `facetwp_use_search_relevancy` filter to prevent search relevancy from overriding the default orderby
  • Improved: better error handling when a valid template isn’t found
  • Improved: better help text for the “Parent term” tooltip
  • Improved: simplified Debug Mode code
  • Fix: strip slashes for quoted search keywords
  • Fix: IE11 issue with HTML5 placeholders (date picker)
  • Fix: PHP notice in WooCommerce integration
  • Updated flatpickr (3.0.5-1)
  • Updated noUiSlider (10.0.0)
  • Updated jQuery PowerTip (1.3.0)
  • Updated translations


  • May 22, 2017
  • Fix: pagination issue with CSS-based templates


  • May 19, 2017
  • New: `facetwp_dismiss_notices` filter
  • New: “Enclose” compare type for Date Range facets
  • Improved: better error handling for CSS-based templates
  • Improved: [+] and [-] buttons are now editable (using code)
  • Improved: added “fs-default” CSS class to fSelect boxes when no value is set
  • Improved: added “fs-open” CSS class to fSelect boxes when opened
  • Fix: indexing issue for ACF fields within the “Other data source” setting
  • Fix: FWP()->helper->format_number() was incorrectly stripping slashes
  • Added Polish translations (props Jakub J.)


  • April 26, 2017
  • New: indexer background processing
  • New: WooCommerce-specific UI settings
  • Improved: admin styling tweaks
  • Improved: run update checks only when using the dashboard
  • Fix: Autocomplete facets shouldn’t return anything if query is empty
  • Updated flatpickr and jQuery Autocomplete
  • Updated translations


  • April 10, 2017
  • New: “Other data source” Proximity facet setting (if your longitude is stored separately)
  • New: `facetwp_indexer_is_enabled` filter (to turn off automatic indexing)
  • Improved: admin styling tweaks
  • Improved: extra sanitization for good measure
  • Improved: ignore those pesky `_oembed` Data source choices
  • Improved: WooCommerce pagination detection tweak
  • Improved: Only support ACF4+
  • Fix: JS error when a facet type no longer exists
  • Fix: Enable EDD support only with CSS-based templates
  • Updated translations


  • March 24, 2017
  • This is an important security release
  • Security fix: added nonces to prevent CSRF (props @dtbaker)


  • March 21, 2017
  • New: `facetwp_api_valid_actions` filter
  • Improved: set `X-WP-Nonce` header (REST API auth support)
  • Fix: REST API issue w/ PHP 5.3 (closures don’t support $this yet)
  • Updated flatpickr


  • March 14, 2017
  • New: “Debug Mode” UI setting
  • Fix: Autocomplete facets using incorrect ajax endpoint


  • March 9, 2017
  • What’s new in FacetWP 2.8
  • New: FacetWP now requires PHP 5.3+ and WordPress 4.4+
  • New: shortcode-based templates now use REST API endpoint (~15% faster)
  • New: support for ACF5 radio fields
  • New: added “element” param to `facetwp/set_options/date_range` JS hook
  • Improved: admin styling tweaks, and a new intro video
  • Improved: SearchWP-powered pages are now much faster for larger sites
  • Improved: FacetWP will show an admin notice if an integration add-on needs to be installed
  • Improved: FacetWP will throw a console.error if facets are inside “facetwp-template”
  • Improved: code cleanup, incl. removing pre-1.0 upgrade scripts
  • Fix: security issue allowing logged-in users to access the migration tool
  • Fix: changed support URL (to prevent 301 redirects)
  • Fix: a facet’s “OR” mode wasn’t working with WooCommerce variable products
  • Fix: PHP error when $product doesn’t exist (WooCommerce)
  • Updated to flatpickr 2.4.4
  • Updated translations


  • February 6, 2017
  • IMPORTANT: FacetWP will soon require PHP 5.3 or above
  • We now collect PHP version during update checks. This information will only be used to notify users whose servers need to be updated.
  • Improved: switched user selections to single-select (see Power Plants demo)
  • Improved: automatic number formatting for slider and number_range facet types
  • Improved: using WP’s remove_accents() to replace diacritics
  • Improved: data sources can now be ordered by “weight”


  • January 24, 2017
  • Improved: custom build of WP-JS-Hooks to prevent third-party conflicts
  • Improved: replace diacritics for `facet_value` column
  • Improved: submit button for number range facets
  • Improved: slightly less specific CSS pager selector (Flatsome support)
  • Fix: ensure that `$product` is defined (WooCommerce)
  • Fix: set flatpickr `disableMobile` option to TRUE
  • Updated noUiSlider
  • Updated jQuery Autocomplete
  • Added Danish translations (props Rasmus Grønbech)


  • January 5, 2017
  • New: loading animation setting (spin, fade, none)
  • New: `facetwp_index_all_products` filter (to index out-of-stock WooCommerce products)
  • Improved: `FWP_HTTP.get` JS variable is now dynamic
  • Improved: don’t change search orderby when an “orderby” URL parameter is detected
  • Improved: REST API responses now contain JS settings for facets (if available)
  • Fix: ACF5 “Undefined variable” PHP warning
  • Fix: REST API issue when posts_per_page = -1
  • Fix: Respect WooCommerce’s “Used for Variations” checkbox
  • Fix: renamed “rotate” to “spin” for CSS animations
  • Updated to flatpickr 2.2.9


  • December 14, 2016
  • Fixed WooCommerce product variation support (see usage)
  • New: `facetwp_indexer_post_facet_defaults` filter
  • New: Czech translations
  • Improved: only index in-stock WooCommerce product / variations
  • Improved: use purchase ID instead of license key for support
  • Improved: lookup term name for product variation values
  • Fix: strip non-breaking spaces from user selections
  • Fix: force associative array for json_decode() in class-ajax.php
  • Fix: force array for $matches within class-facet.php
  • Updated to flatpickr 2.2.5
  • Updated to noUiSlider 9.1.0
  • Updated translations

  • November 29, 2016
  • Fix: reverted WooCommerce product variation support while we address some bugs and performance issues


  • November 22, 2016
  • Please re-index if using WooCommerce
  • Fix: incorrect results when filtering on variable products
  • Improved: Finnish translations
  • Updated to flatpickr 2.1.1


  • November 15, 2016
  • New: full support for WooCommerce variable products
  • New: WooCommerce data sources – Price, Sale Price, Regular Price, and Average Rating
  • Improved: support ACF5 date_picker fields
  • Improved: select first proximity result on “Enter” press
  • Improved: welcome screen cleanup
  • Improved: flatpickr l10n
  • Fix: hierarchy facet indentation issue
  • Updated flatpickr (latest nightly)
  • Updated translations


  • October 18, 2016
  • Improved: better range intersect logic
  • Improved: FWP.settings.num_choices now supports hierarchy facets
  • Fix: get ACF field groups in all languages (WPML fix)
  • Fix: ghost choices should count as non-empty


  • October 7, 2016
  • Improved: faster loading of admin settings screen
  • Improved: radio facets now support “ghosts” and “preserve ghost order” settings
  • Improved: facet labels are now translatable
  • Improved: FacetWP_Ajax->refresh() now uses wp_die() for better debugging
  • Improved: date picker IE fixes
  • Tweak: REST API “facets” response variable is now an associative array
  • Renamed `facet_setting_is` method to `facet_is`
  • Removed bootstrap-datepicker
  • Updated to flatpickr 2.0.4
  • Updated to noUiSlider 9.0.0
  • Updated to jQuery Autocomplete 1.2.26
  • Updated translations


  • September 19, 2016
  • New: radio facet type
  • Improved: FWP()->facet->facets is now an associate array (facet names as array keys) for easier access


  • September 2, 2016
  • New: `FWP.settings.num_choices` JS object for determining whether facets have available choices
  • Improved: prettier plugin details modal
  • Improved: simplified User Selections JS logic
  • Improved: strict equality operators (JS)
  • Fix: sanitize User Selections box to prevent XSS (props Bill Reed)
  • Fix: CSS-based templates shouldn’t re-render on pageload
  • Fix: wrap autocomplete terms within `$wpdb->esc_like`
  • Updated flatpickr (latest nightly)


  • August 17, 2016
  • Fix: date range selector issue
  • Tweak: JS template injection logic


  • August 6, 2016
  • New: REST API endpoint
  • New: autocomplete “Placeholder” setting
  • New: date_range “Display format” setting
  • New: “facetwp_gmaps_api_key” hook
  • New: “facetwp_template_force_load” hook
  • Changed: removed deprecated hash-based permalinks
  • Changed: replaced Bootstrap Datepicker with flatpickr
  • Fix: better error handling for missing taxonomies


  • July 5, 2016
  • Fix: GitHub Updater PHP notice
  • Fix: checkbox “ghosts” setting PHP notice
  • Tweak: WooCommerce / EDD assets filterable via `facetwp_assets`
  • Updated Dutch translations


  • June 20, 2016
  • New: added GitHub Updater class (automatic updates for add-ons)
  • Improved: allow FWP variables to be set before front.js loads
  • Improved: added JS hook to prevent hierarchy checkbox toggles
  • Fix: prevent selected checkbox items from disabling
  • Fix: prefixed “reset” and “loading” CSS classes to prevent conflicts
  • Fix: checkbox toggle issue when paginating
  • Tweak: minor copy edits


  • June 15, 2016
  • Important: if you recently upgraded the Time Since, Select2, or Alpha add-ons, please upgrade again
  • Fix: Cannot read property ‘length’ of undefined JS error
  • Fix: ensure that FWP object exists
  • Fix: remove [+] toggle links from selections box
  • Fix: render inline scripts after assets


  • June 10, 2016
  • New: support for WooCommerce product variations
  • New: support for ACF user fields
  • New: i18n for bootstrap-datepicker.js
  • New: Google Maps API key support (`GMAPS_API_KEY` constant)
  • New: `facetwp_assets` filter to control loading of CSS/JS files
  • Improved: show/hide toggles for hierarchical checkbox facets
  • Improved: WooCommerce indexing performance tweak
  • Fix: prevent Date Range logic from interfering with Bookings add-on
  • Fix: Safari issue when copying shortcodes from admin
  • Updated translations


  • May 24, 2016
  • Improved: fSelect JS is now much faster
  • Improved: moved facet logic into front-facets.js
  • Fix: clicking a user selection too fast resets all selections
  • Updated translations


  • Improved: added CSS classes to user selection items
  • Improved: pass empty custom field values through facetwp_index_row
  • Fix: issue with ACF repeater fields and “Source other” setting
  • Added Portuguese, updated Romanian translation


  • New: intro screencast on the Welcome screen
  • New: “Behavior” setting for fSelect facets
  • New: “facetwp_render_params” hook
  • Improved: Welcome screen UI
  • Improved: “html” param added to the “facetwp/template_html” JS hook
  • Fix: clicking the fSelect arrow icon should open the dropdown


  • New: fSelect supports shift+click
  • Improved: proximity radius supports decimals
  • Improved: better UX for the facet / template name field
  • Improved: export tool now using fSelect library
  • Fix: reverted SearchWP changes from 2.4.2
  • Fix: only auto-fill facet / template names when empty
  • Fix: fSelect search issues
  • Fix: fSelect should close when another is opened
  • Fix: date range facets break when using “Exact date” mode
  • Fix: PHP notice with ACF integration
  • Fix: typo in accessibility.js
  • Updated translations


  • New: “Compare type” option for range facet types
  • Improved: cleaner SearchWP integration
  • Fix: fSelect facets not preserving spaces during search
  • Fix: prevent “facetwp_indexing” wp_option from autoloading
  • Fix: PHP notice for checkbox facets
  • Fix: typo in query-string.js
  • Updated NL translations (props Toon Van De Putte)
  • Updated to noUiSlider 8.3.0


  • New: Romanian translations
  • New: facetwp_template_use_archive filter (allow shortcode templates to detect archive queries)
  • Improved: the admin UI hard refresh after import
  • Improved: fSelect (javascript library) support for disabled options
  • Improved: Date Range facet now includes an “Exact Date” field option
  • Fix: slider facet ranges are preserved when selected
  • Fix: prevent “pre_get_posts” action from triggering multiple times
  • Fix: user selections should trigger “facetwp-refresh” event
  • Fix: load facet labels, even for static facets
  • Fix: iOS issue for fSelect facets
  • Tweak: renamed sample template from “Default” to “Example”
  • Tweak: standardized plugins_url() usage
  • Updated nummy.js and query-string.js
  • Updated German translations


  • What’s new in FacetWP 2.4
  • New: fSelect facet type (dropdown combo-box)
  • New: checkbox “Soft limit” setting (show/hide facet choices)
  • New: WooCommerce “On Sale” Data Source option
  • New: Argentinian translations
  • Improved: better “Data Source” dropdown UI
  • Improved: prepend user selections with the facet label
  • Improved: hide some unnecessary EDD fields from the Data Source dropdown
  • Improved: bust asset cache on new FacetWP version
  • Improved: fSelect is now keyboard-friendly
  • Changed: renamed CSS class from “facetwp-collapsed” to “facetwp-overflow”
  • Changed: replaced hierarchy “More” text with “See more”
  • Updated translations


  • New: `facet_setting_is` helper method
  • Improved: added `facetwp_facet_from` filter to hierarchy facets
  • Improved: added `facetwp_facet_where` filter to hierarchy facets
  • Improved: added `facetwp_facet_orderby` filter to hierarchy facets
  • Improved: better dual-value logic for slider, date range, and number range facets
  • Fix: removed deprecated Google Maps “sensor” parameter
  • Fix: FWP.reset() should trigger the “facetwp-refresh” event
  • Fix: prevent Auto Drafts from triggering the indexer
  • Fix: for hierarchical facets, exclude the parent from appearing when “Parent Term” option is set
  • Fix: proximity facet should respect FWP.auto_refresh
  • Upgraded Bootstrap Datepicker (1.6.0)


  • Improved: autocomplete “No results” text is translatable
  • Improved: the FWP_Init class is now accessible via `FWP()->init`
  • Improved: the “Distance” sort option only appears when a Proximity facet exists on the page
  • Improved: Proximity facet’s radius dropdown supports dynamic values
  • Improved: Added “Settings” link to Plugins page
  • Changed: `FWP.serialize()` javascript method is now `FWP_Helper.serialize()`
  • Upgraded jQuery Autocomplete
  • Upgraded Bootstrap Datepicker
  • Updated translations


  • Fix: issue related to certain facets not resetting or spinning indefinitely
  • Fix: AJAX `first_load` value incorrect in some situations


  • New: facetwp_facet_render_args filter
  • Improved: much smarter indexer resuming
  • Improved: prevent multiple “Re-index” clicks from spawning new indexer processes
  • Improved: added `no_found_rows` indexer query argument (optimization)
  • Improved: indexer post IDs are cached for more efficient resuming
  • Fix: ignore Safari’s “popstate” on initial pageload
  • Fix: back button not showing the correct template results
  • Fix: proximity facet autocomplete issue
  • Fix: proximity facet “geolocate” icon disappearing after first use
  • Fix: reverted FACETWP_CACHE handling due to possible issues


  • New: support for the (soon-to-be-released) Conditional Logic add-on
  • New: Dutch translations (props Pascale Van Craeyveld)
  • New: search facets now have an “Undo” icon
  • Improved: prevent certain facet types from triggering a full UI refresh
  • Improved: efficiency tweaks when indexing ACF repeater sub-fields
  • Improved: stripped BODY from CSS-based template responses (New Relic fix)
  • Improved: class-display.php cleanup
  • Fix: don’t bypass facets when FACETWP_CACHE exists
  • Fix: PHP error for Number Range facets
  • Changed: removed focusout event from search facets
  • Updated to noUiSlider 8.2.1
  • Updated translations


  • Improved: setup code is now within FWP.init()
  • Improved: support tickets show child theme debug info
  • Fix: proximity facet issue with pagination
  • Fix: slider facet issue with FWP.reset()
  • Fix: autocomplete facets and apostrophes
  • Fix: fSelect was unable to load default values
  • Fix: reset “paged” when a user selection is removed
  • Deprecated: “Permalink Type” setting, hidden for new users


  • Improved: disabled WP object caching when indexing (less memory usage)
  • Improved: better dual-range filtering logic for number range facets
  • Improved: better dual-range filtering logic for slider facets
  • Fix: fSelect dropdown selector not re-opening
  • Fix: slider dual-range issue


  • Improved: better logic for date range facets w/ 2 data sources
  • Improved: query debugging support (`FACETWP_DEBUG` constant)
  • Improved: moved init code to includes/class-init.php
  • Improved: Welcome screen design tweaks
  • Fix: ACF repeater sub-field indexing issue (ACF5)
  • Fix: back / forward button issues (related to bfcache)
  • Fix: sort_by_distance() incorrectly returning all results when no matches
  • Fix: translation support for “Per Page” text
  • Upgraded noUiSlider to 8.1.0
  • Updated translations


  • New: support for ACF google map fields + proximity facets
  • New: `facetwp_proximity_autocomplete_options` filter for customizing the proximity autocomplete box
  • New: `facetwp_shortcode_html` filter (for advanced users)
  • Fix: better handling of custom fields containing a “latitude, longitude” value


  • Fix: proximity facet incorrectly indexing negative lat / lng values
  • Fix: SearchWP issue with checkbox facets in “OR” mode


  • Fix: proximity coordinates not indexing correctly with Listify (please re-index)
  • Changed: renamed `get_post_location` function to `facetwp_get_location`


  • New: proximity facet type
  • New: proximity “geolocate” button
  • New: support for programmatic facets and templates
  • New: `facetwp_facet_search_engines` filter
  • Improved: new loading icon
  • Improved: Welcome screen text edits
  • Improved: added version to front.css (cache buster)
  • Improved: keyboard support for fSelect library
  • Fix: only show selections that have a label
  • Fix: slider javascript error when no matches
  • Fix: proximity facet not saving “Unit of Measurement” setting
  • Fix: date range “Fields” setting not saving
  • Updated translations


  • New: support for ACF taxonomy fields
  • Improved: confirm before deleting a facet or template
  • Improved: indexer performance gains
  • Improved: CSS templates return “body” content (instead of full HTML document)
  • Fix: reverted term_permalink setting for Listify compatibility


  • New: slider support for separate “lower” and “upper” values
  • New: date range, number range support for separate upper limits
  • New: get_row_data() indexer method
  • Improved: admin UI efficiency
  • Improved: make sure the ACF class only loads once
  • Improved: removed CSS min-height from hierarchy facets


  • New: admin UI overhaul
  • New: Query Builder for FacetWP templates
  • New: fSelect library for select box replacement
  • Improved: caching add-on support for CSS class-based templates
  • Improved: more javascript strings are now translatable
  • Improved: replaced some icons with WP Dashicons
  • Improved: renamed “Facet Count” to “Highest Count”
  • Fix: search facets not using SearchWP engine
  • Updated translations


  • New: “total_pages” parameter within FWP.settings.pager
  • New: facetwp_facet_from filter (for checkbox & dropdown facet types)
  • Improved: trigger facetwp-refresh event *before* changing the permalink
  • Improved: better SearchWP integration (NOTE: requires SearchWP 2.6+)
  • Updated translations


  • New: WooCommerce “Stock Status” data source (even supports variable products)
  • Improved: removed deprecated “term_permalink” setting from the admin UI
  • Improved: re-ordered Facet Type dropdown to show most used facet types first
  • Improved: upgraded to noUiSlider 8.0.2
  • Fix: indexer was skipping values equal to 0
  • Fix: search box was resetting other facet selections
  • Fix: preserve $post and $wp_query variables when using shortcode templates
  • Fix: hierarchy issue with terms belonging to multiple taxonomies


  • Improved: high-res checkbox image
  • Improved: upgraded to noUiSlider 8.0.1
  • Improved: search facet refresh triggers on “focusout” event
  • Improved: UI tweaks to admin “?” icon
  • Fix: bug with SearchWP 2.6 integration
  • Fix: handler for WooCommerce sort / pager controls
  • Fix: PHP warning (static method) with ACF4 integration
  • Fix: PHP warning when there are no ACF fields
  • Updated translations


  • New: support for SearchWP 2.6+
  • New: selections box is now client-side (fewer DB queries!)
  • New: facetwp_facet_filter_posts filter (for custom filtering logic)
  • New: 2nd parameter to the facetwp_facet_dropdown_show_counts filter
  • Improved: nicer admin loading animation
  • Improved: permalink logic (spaces previously triggered an MD5-based permalink)
  • Improved: support for ACF true / false fields
  • Improved: license status reminder added to the plugin list screen
  • Updated WP-JS-Hooks library


  • New: Advanced Custom Fields integration (see blog post)


  • New: “Per Page” shortcode
  • New: partial ARIA accessibility support
  • New: safe_value() helper method
  • New: facetwp_i18n function
  • Improved: better dropdown filtering logic
  • Improved: translation support for DB strings
  • Improved: dropdown performance
  • Improved: admin topnav UI tweaks
  • Improved: error handling for PushState and IE9
  • Improved: thousands / decimal separator cleanup
  • Updated translations


  • Fix: test for valid JSON before saving admin settings
  • Fix: pagination should trigger a refresh, even when FWP.auto_refresh is false
  • Improved: license check via HTTP (some hosts block outgoing HTTPS)
  • Improved: added hi-res loading icon


  • New: integration with WooCommerce pager and sort controls (see screencast)
  • New: hierarchical taxonomy support for dropdown facets
  • New: Italian translations (props Daniel C.)
  • Improved: checkbox font size is no longer forced at 13px
  • Fix: front.js – inject template HTML even if it’s an empty string
  • Fix: conditional logic in admin settings page
  • Fix: newline issue in Firefox in the Templates settings page


  • Fix: template display issue on initial pageload
  • Fix: admin UI (flexbox) support for IE10 and Safari
  • Fix: German translation edits (props Annette V.)
  • Improved: better slider error handling


  • Improved: increased template performance
  • Improved: admin styling tweaks
  • Improved: re-translated all 6 languages (DE, ES, FR, NO, RU, SE)
  • Fix: prevent WP from redirecting FacetWP pagination (e.g. /page/2/)
  • Fix: pager & sort should only auto-refresh when `FWP.auto_refresh` is true


  • Fix: date picker styling issues
  • Fix: support relative paths for FACETWP_URL (props @Josh412)
  • Fix: potential double-sanitization issue
  • Added Swedish translations (props Johan Falk)


  • Improved: show slider “Reset” button only when needed
  • Improved: admin area now uses CSS flexbox (meant for newer browsers)
  • Improved: facets will now render, even if inside of “facetwp-template” CSS class
  • Improved: better input sanitization
  • Improved: upgraded Bootstrap Datepicker
  • Improved: upgraded jQuery Autocomplete
  • Fix: prevent slider values from disappearing after page reload
  • Changed: renewal reminder appears < 30 days before expiration (plugins page)


  • Fix: template preloading issue with the CSS method
  • New: `facetwp_facet_sources` filter for adding / modifying Data Sources
  • Improved: Autocomplete facets will also refresh when “Enter” is pressed
  • Improved: Autocomplete – more text is now translatable


  • Fix: proper preloading of content with pre-selected facets
  • Fix: PHP notice with new “preserve_ghosts” checkbox setting
  • Improved: better EDD integration
  • Improved: support for EDD’s [ downloads ] shortcode
  • Improved: moved get_preload_data() method into AJAX class
  • Added Norwegian translations (props @bjornjohansen)


  • Improved: FWP.parse_facets() is slightly more efficient
  • Fix: resolved 2 PHP notices


  • Fix: conflict with FacetWP templates inside a WP Loop


  • New: welcome screen
  • New: FacetWP templates are now search engine visible!
  • New: settings for thousands / decimal separators (for non-US numbers)
  • New: updated slider facet to support custom separators
  • Improved: added “No results” text for Autocomplete facets
  • Improved: settings page CSS cleanup
  • Improved: removed some unnecessary debugging information from Support tab
  • Improved: updated sample content for fresh installs
  • Updated translations