This release is a small quickfix release for some minor issues, but as always, there is something new.
New Features
Added an option to transform all user input quote types to ASCII/Standard (Advanced Settings -> Keywords -> "Resolve all types of quotes to Standard/ASCII single and double quotes") (#306)
Changes
Ampersand "&" characters in user input are now properly converted for non-indexed searches to match in WordPress posts, taxonomy terms and custom fields database (#307)
Slightly improved the image parser (#310)
Fixes
Fixed an issue with multisite installation, when using the search statistics (#308)
Fixed a possible type coercion issue in the statistics interface (#311)
For all the issues resolved, check out the 4.28.2 milestone.
New Features
Added CLI commands to control the index table from the command line. (#302)
Added an option for the index table to be compressed, potentially saving ~50% disk space for larger databases (#305)
Added options to control the action of the "close" icon in the search input (clear, clear+reset, clear+reset+retrigger search) as well as if the results window should be closed when it's clicked (#256)
Added an option to remove irrelevant taxonomy filter values when the filter is used on archive pages (#271)
Added an option to control non-translated content visibility when using WPML (#275)
Added terms_include and terms_exclude arguments to the {get_values} custom field filter pseudo-code, so custom field values can be excluded or included by post categories. (#295)
Added an option to adjust the live search trigger delay (#298)
Added an option to separately set the minimum character count to trigger the live search as well as the redirection via magnifier or the return key actions (#301)
Improvements & Changes
Added ver query argument to the optimized and asynchronous script loaders so cache plugins have a better chance of picking up file changes during version updates (#300)
The auto-update system was greatly improved, now it should allow the WordPress "Enable auto updates" feature properly (#292)
Fixes
Fixed a rare issue where a if a search instance option data is corrupted, it should default instead of an error (#297)
Fixed an issue, where if a double quote character was used in the multiselect drop-down filter container, it would case a json parser error due to the incorrect encoding (#291)
Fixed a type coercion issue within the search statistics interaction handler (#290)
Fixed a possible Yoast SEO conflict (#299)
Fixed an issue with Elementor Posts and Product widget navigation when live loading is used along with query parameters (#296)
New Features
Search Statistics refactored. It features in-depth search, results and interaction tracking. (#264)
Added a Lightbox feature for image media results. Images from the media library now can be opened in a lightbox (#279)
Divi 5 Loops integration for live filtering (#273)
Divi Query Builder addon integration for live filtering (#267)
Added an option to turn off results redirection on click (#278)
Improvements & changes
Greatly improved Index Table matching for titles (#262)
PHP 8.5 compatibility fully tested (#288)
The asp_load_css, asp_load_js, asp_load_css_js hooks are deprecated, please use the more intuitive alternatives (#280)
Improved the Datepicker script automatic localization (#281) as well as the triggers (#282)
Changed the live search response body to full JSON instead of the current plaintext to better support automated translation scripts such as GTranslate (#283)
Improved script loading (#266)
Fixes
Number range custom field filter validation fixed, it now only validates on Enter key or on focus loss (#276)
Fixed the scrolling for double/triple finger touchpad top-down and sideways swiping for the Horizontal results layout (#284)
Fixed an issue with the WooCommerce advanced field, where it would yield an error when non-WooCommerce product post types were used (#261)
Fixed an issue with the auto-updater, where an error object was returned instead of a transient (#269)
Fixed the number of results returned for empty phrases when using media search with the index table (#258)
Fixed an error with the query arguments (#257)
Fixed an issue with the index table engine, where the incorrect number of partial title matches were reported (#286)
Fixed an issue where if the typing of QueryLoopBlock is not returned as WP_Block in the query vars hook, then a stdClass is accepted to avoid a type error (#268)
Fixed a post type grouping issue with the index table engine (#272)
Even though this is a minor release, it follows up on the previous improvements in 4.27. Most noteable new features are the Block Editor Query Loop and the GeneratePress Query filtering support.
For the full changelog, check out the 4.27.1 milestone on the development repository.
4.27.1 Ajax Search Pro Changelog
New Features
Filtering for Block Editor Query Loop is now supported (#110)
Similarly, filtering for the GenerateBlocks Query is also supported (#206)
Grouping by Taxonomy Terms now applies to Media Files as well (#47)
Autocomplete is now triggered by the "Tab" key (#223)
Keyword highlighting now works on live loaded features (#215)
Improvements
Added an additional key to the index table "doc" column to make lookups faster (#56)
Added a warning message to the index table trigger by meta feature (#177)
Added aria label and role to the checkbox container of front-end filters (#224)
Fixes
Fixed an issue where the reset button did not properly reset the autocomplete input (#49)
Fixed an issue with auto-populate and quoted search queries, where quotes would cause a decoder failure (#213)
Fixed an issue with the add-to-cart handler in the new Advanced Content field, where in repeated queries the add-to-cart would execute multiple times (#214)
Fixed an issue with the taxonomy "Select all" checkboxes, where in some cases it applies to all taxonomy filters (#216)
Fixed an issue where on PHP 7.4 the analytics may not load properly due to a type coercion (#220)
Fixed an issue where the "asp_option_checked" class will not apply to the checked/unchecked checkbox parent option classes (#222)
Fixed advanced fields on indexed queries (#221)
New Features
Added a visual tag editor for the Advanced Title and Description fields (#201)
Added support for Divi Blogs module Live filtering (#212)
Added an option for result group headers to be clickable links, leading to the group archive page (#160)
Added automated Singularization/Pluralization feature to the index table engine (#61)
Improvements
Improved ACF relationship field indexing (#208)
Greatly improved predictive keyword suggestions (#194)
When the Lite version shortcode is used, then Pro will output the first existing search instance after the Lite version is deactivated (#211)
HTML results output is now filtered through wp_kses_post variation to greatly improve security (#192)
Added support for Search Exclude plugin (#191)
Development has moved to PHP 8.4 to ensure compatibility (#185)
Added wp_cache_get() to some repetitive queries to greatly improve loading performances (#188)
Improved SEO for the "Load more results.." link (#181)
Fixes
Fixed capability checks from newer code recommendations (#210)
Fixed an issue with the index table, where on large datasets and not using relevance ordering the results would differ from the results page and the live results list (#198)
Fixed an issue where if the reset button was used along with either an input or range input filter, then hitting "Return" would trigger the reset due to the button being treated as a "submit" type (#203)
Fixed an issue with Elementor Loop grid and archive page filtering (#178)
Fixed an issue where the results page override would not trigger on Divi (#202)
Fixed an issue with user exclusion parameters (#180)
Fixed an issue with the autocomplete feature, where it would not clear properly (#183)
Fixed an issue with the keyword highlighter, where quote characters were not properly ignored and the highlighting was not executed (#204)
Fixed an issue where some data was not correctly wiped during plugin wipe (#209)
Fixed an issue with a query argument (#200)
Fixed the duplicated ID resolver script, where in some cases it was not working correctly (#199)
Fixed an issue with double quoted search phrases (#193)
Fixed an issue with the REST API where post type filters would affect the results incorrectly (#184)
- Greatly improved Index Table transliteration (#140)
- The preview window is now resizable and responsive (#173)
- Cloudflare Rocket Loader is now fully supported (#148)
- Improved archive page live loaders (#157)
- Fixed some warnings when certain grouping options were enabled (#152)
- Fixed an issue with ACF repeater indexing (#154)
- Fixed an issue with with archive page live loaders (#155)
- Fixed an issue where Cloudflare would block the save request for a false positive match (#156)
- Fixed an issue with the Elementor widget infinite loading (#158)
- Fixed an issue with an override attribute (#159)
- Fixed an issue with Bricks builder, where the plugin was not rendering in live view (#166)
- Fixed a conflict with Yoast SEO sitemap generator (#169)
- Fixed a multisite search issue (#149)
- Added support for GTranslate plugin so results are definitely translated (#170)
- Fixed an issue with BuddyPress search (#167)
- Fixed an issue with WP Rocket integration (#150) - Special thanks to alfonso100 and joejoe04 from WP Rocket team for help
Improvements
Fixed an issue where multiple search bars using isotopic results layout in a custom position would cause the second bar not to work correctly (#147)
Image lazy loading is now utilized from the browser loading="lazy" attribute instead of using a custom script (#146)
Fixed an issue where some cache plugin minifiers would not correctly recognize the output and minify incorrectly (#143)
Fixed a chmod mask and recursive directory creation issue during activation (#142)
New Features
Added an OpenAPI compatible swagger.yaml file in the plugin root directory for REST endpoint (#123)
The plugin script output had been greatly optimized by exchanging the current build engine to esbuild. The overall package build script had been rebuilt to node.js and npm. (#133)
Improvements
Greatly improved Media File Search and fixed an issue where the context and images would not show up on PDF results (#136)
Fixed an issue where incorrectly set post limits would cause an issue on the back-end (#137)
Fixed an issue where post tag filters threw an error (#138)
Fixed an issue where the back-end options post type search was not working correctly (#135)
Fixed an issue with exact matches (#141)