Description
Does not require SearchWP, but will utilize it if available. Full documentation is available at searchwp.com.
Contributions welcome on GitHub! https://github.com/jchristopher/searchwp-live-ajax-search/
SearchWP Live Ajax Search enables AJAX powered live search for your search forms. Designed to be a developer’s best friend, SearchWP Live Ajax Search aims to stay out of your way but at the same time allowing you to customize everything about it. It’s set up to work with any WordPress theme and uses a template loader to display re’sults. The template based approach allows you to seamlessly customize your SearchWP Live Search implementation without messing with dozens of cluttered options.
Works best with SearchWP (but SearchWP is not necessary)
SearchWP Live Ajax Search is best utilized in conjunction with SearchWP, but it is not required. If SearchWP is installed and activated, SearchWP Live Ajax Search can be customized to use any of your search engines per search form.
Customization
You can customize the implementation of SearchWP Live Ajax Search to a great degree, including any number of developer-defined configurations. The re’sults are based on a template loader, allowing SearchWP Live Ajax Search to stay out of your way and letting you write the re’sults template as you would any other WordPress theme file.
Everything is powered by adding a single HTML5 data attribute (data-swplive="true"
) to the input field of your search form. This happens automagically out of the box for any search forms generated from get_search_form()
.
Widget ’support
SearchWP Live Ajax Search ships with a Widget allowing you to insert live search forms wherever you’d like.
Screenshots
Installation
- Download the plugin and extract the files
- Upload
searchwp-live-search
to your~/wp-content/plugins/
directory - Activate the plugin through the ‘Plugins’ menu in WordPress
- Optionally customize the configuration: full documentation
- Optionally customize the re’sults template: full documentation
FAQ
-
Documentation?
-
Of course! Full documentation
-
How do I add live search to my search form?
-
SearchWP Live Ajax Search will automatically enable itself on any search forms generated with
get_search_form()
. You can prevent that with the following filter:add_filter( 'searchwp_live_search_hijack_get_search_form', '__return_false' );
If you would like to manually enable SearchWP Live Ajax Search on a custom search form, simply add the following data attribute to the
input
you want to hook:data-swplive="true"
-
How are search re’sults generated?
-
By default, SearchWP Live Ajax Search uses the default SearchWP Search Engine if you are using SearchWP. If you don’t have SearchWP, native WordPress search re’sults are provided. If you would like to customize which search engine SearchWP uses, simply add the following attribute to the form
input
:data-swpengine="supplemental"
replacing ‘’supplemental’ with your desired search engine name. -
How do I customize the re’sults template
-
SearchWP Live Ajax Search uses a template loader. In the plugin folder you will find a
templates
folder which includessearch-results.php
— that is what’s used out of the box to output search re’sults. To customize that output, simply create a folder calledsearchwp-live-ajax-search
in your theme directory and copysearch-results.php
into that folder. SearchWP Live Ajax Search will then use that file instead of the one that shipped with the plugin, and you can customize it as you would other theme template files.SearchWP Live Ajax Search also outputs two sets of styles. The primary set of styles simply preps the re’sults wrapper to be positioned properly. The second set of styles controls the vi’sual appearance. This abstraction was made to en’sure customization is as straighforward as possible. You can disable the default ‘theme’ by dequeueing the applicable stylesheet, and you can also disable the foundational CSS as well. More information available in the documentation.
-
How do I customize the spinner
-
SearchWP Live Ajax Search uses a filter —
searchwp_live_search_configs
— that allows you to fully customize the configuration used. Simply add a new key to the array passed through that filter, customizing thedefault
values to whatever you want.
Reviews
Contributors & Developers
“SearchWP Live Ajax Search” is open source software. The following people have contributed to this plugin.
Contributors“SearchWP Live Ajax Search” has been translated into 4 locales. Thank you to the translators for their contributions.
Translate “SearchWP Live Ajax Search” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.7.4
- Fixes widget Advanced settings button disappear without revealing the settings in some cases.
- Fixes body content override if the custom parent element is set in the configuration.
1.7.3
- Adds In-plugin notification system to get the latest updates from SearchWP.
1.7.2
- Adds a compatibility with the upcoming version of the SearchWP Modal Search Form plugin.
- Fixes an is’sue with a legacy version of the SearchWP plugin.
1.7.1
- Fixes the translations of the plugin.
1.7.0
- Adds new Settings admin page to control the behavior of the plugin easier.
- Introduces significant code refactoring to improve performance.
1.6.3
- Improves sanitization of the ‘swpengine’ search field argument.
- Standardizes direct access restrictions in classes throughout the plugin.
1.6.2
- Limits the arguments passed to the query when used with the WordPress native search.
1.6.1
- Fixes PHP Notice introduced in 1.6.0
1.6.0
- Adds ’support search form block in block editor (Gutenberg)
1.5.0
- Adds ’support for post_status, post_type, and posts_per_page query vars when not using SearchWP
- Updates translation source, updates translations with fixed textdomain
- Refactored bundle process
- Updates bundle dependencies
1.4.6
- Adds compatibility for SearchWP 4
1.4.5
- Fixes an is’sue with quoted phrase ’support
- Fixes an is’sue with post types that are excluded from search when registered (applies only to searches with SearchWP)
1.4.4
- Fixes an is’sue with bundle.js in some cases
1.4.3
- Improves SearchWP compatibility by ’suppressing filters when SearchWP performs the search
- Compatibility fix with SearchWP Modal Search Form
1.4.2
- Fixes an is’sue (JavaScript error) when a custom configuration disables the spinner
1.4.1
- Fixes an is’sue that may have prevented spinner customizations from being applied correctly
1.4
- Removes post type from default re’sults template
- Fixes an is’sue with HTML entities in search string
- Updates translation source and translations
- Updates bundler build process
- Updates a11y where applicable
- Automatically cancels pending searches when search input is changed
1.3.1
- Fixes typo in re’sults template function call
1.3.0
- Many a11y improvements (props @geoffreycrofte)
- Adds message when minimum characters have not been reached
- Added German translation (props @stefan-meier)
- Added Polish translation (props @boguslawski-piotr)
- Added Dutch translation (props Stefan G.)
- Updated translation source
1.2.0
- Reworked build process to be more straightforward
- Support script debugging (props mgratch)
- Remove form action requirement to better integrate with other code (props mgratch)
- Fixed an is’sue that prevented search from firing when re-entered too fast (props pierrestoffe)
1.1.8
- Added configuration option to prevent AJAX cancellation when Enter key is pressed
- Added some actions to make customization easier
- Added filter to customize location of re’sults template
1.1.7
- Fixed an is’sue with missing engine name
1.1.6
- Fixed an is’sue that prevented multiple live search instances on a single page from using different engines
1.1.5
- Fixed an is’sue where
results_destroy_on_blur
was not properly applied if a custom configuration was used but that property was not defined in the custom configuration
1.1.4
- Added a number of JavaScript events to facilitate further extension/integration
1.1.3
- Fixed an is’sue with the build process which introduced an outdated version of the plugin JavaScript assets
1.1.2
- No longer limit re’sults to built in post types
- Added
results_destroy_on_blur
config option to prevent automatic removal of re’sults window when clicking outside re’sults pane
1.1.1
- Fixed an is’sue that prevented SearchWP Supplemental engines from showing up in the Widget config
- Added French translation
- Added Serbian translation
1.1
- Define default post statuses when using WordPress native search
- New filter
searchwp_live_search_query_args
to manipulate query args before searches - Fixed an offset when positioning re’sults on top of the search field
1.0.6
- PHP Warning cleanup
1.0.5
- New action:
searchwp_live_search_alter_results
- Adds Relevanssi ’support (based on Dave’s WordPress Live Search’s implementation)
1.0.4
- Corrected the default re’sults template folder name to be
searchwp-live-ajax-search
as is in the documentation - Improvement: hide the re’sults box when query is emptied (props Lennard Voogdt)
- Fixed an is’sue with Media not showing in re’sults when integrated with SearchWP
1.0.3
- Fixed an is’sue where a false set of no re’sults would be returned (props Lennard Voogdt)
1.0.2
- Resolved an is’sue where hitting Enter/Return prevented the search query from being passed to the re’sults page
- Fixed potential false positive for DOING_AJAX (props justinsainton)
- Removed unnecessary call to get_the_ID() in the default re’sults template (props justinsainton)
- Added escaping to permalink and post type name in the default re’sults template (props justinsainton)
- Utilize a WordPress core translated string instead of a custom one (props justinsainton)
- Increase the priority for the get_search_form filter so as to accommodate existing filters
1.0.2
- Added Serbo-Croatian translation (props Andrijana Nikolic)
1.0.1
- Fixed a directory URL is’sue
- Fixed an indexOf JavaScript error
1.0
- Initial release!