Hooks
Search results will be limited to Hooks thanks to a SearchWP Supplemental Engine
SearchWP includes a number of hooks to allow unique customization without compromising the plugin code itself. Integrating with SearchWP using hooks will allow your modifications to remain in place even when upgrading SearchWP over time.
If you have not used WordPress hooks before please follow this SearchWP customizations plugin creation guide.
Query
-
searchwp\query
- Using this hook you can directly manipulate the search query itself.
-
searchwp\query\args
- Customize the arguments for a \SearchWP\Query which is used to perform all search queries.
-
searchwp\query\before
- Fires immediately before a \SearchWP\Query query is executed, before Mod(s) have been set up.
-
searchwp\query\do_source_db_where
- Control whether SearchWP considers the db_where() criteria for Sources. This functionality adds a layer of protection against content edits that were made in such a way that SearchWP’s indexer was not able to capture. If you are confident that your content edits are all taking place through APIs as captured by the Sources you’re using […]
-
searchwp\query\logic\{$type}\strict
- Influence how SearchWP works through its various logic passes when performing searches. By default SearchWP will iterate through a series of logic passes when performing searches in this order: phrase (i.e. “quoted”, sentence searches) and (i.e. all search terms present in all results) or (i.e. any search terms present in any result) After each pass, […]
-
searchwp\query\logic\and
- Control whether AND logic is performed. Note: By default AND logic will be skipped if the token threshold is breached. The default threshold is 5 but can be customized with the searchwp\query\logic\and\token_threshold hook.
-
searchwp\query\logic\and\token_threshold
- Controls the threshold that SearchWP considers when deciding whether to perform an AND logic pass. AND logic can be problematic resource-wise and in some cases result in long query times. Because of SearchWP’s relevance algorithm, skipping AND logic because there are too many search terms will not degrade the quality of results as the most […]
-
searchwp\query\logic\phrase
- Control whether SearchWP supports quoted phrases.
-
searchwp\query\mods
- Customize the \SearchWP\Mods applied during a search. Note: There are some internal \SearchWP\Mods that may be present for the query. This hook does not allow filtration of those mission critical \SearchWP\Mods, only user-defined \SearchWP\Mods. See also searchwp\query\do_source_db_where for internals.
-
searchwp\query\output_suggested_search
- Control whether SearchWP automatically suggests search fixes.
-
searchwp\query\partial_matches
- Control whether SearchWP applies its partial matching logic when necessary.
-
searchwp\query\partial_matches\buoy
- Control whether exact matches are given extra relevance weight when performing partial match logic.
-
searchwp\query\partial_matches\did_you_mean
- Control whether SearchWP’s performs “Did you mean?” style corrections to searches that apply partial matching logic.
-
searchwp\query\partial_matches\force
- Force SearchWP to execute its partial matching logic despite results being found.
-
searchwp\query\partial_matches\fuzzy
- Control whether partial matching logic uses fuzzy matching. By default (when enabled) SearchWP will utilize two levels of partial matching logic. Find partial matches that contain the search string If no partial matches are found attempt to find tokens that sound like search terms
-
searchwp\query\partial_matches\fuzzy\force
- By default (when partial matching is enabled) SearchWP will apply two levels of partial matching logic. The first will be the application of direct partial matches, and if no partial matches are found another level of fuzzy logic will be applied. This hook can force that fuzzy logic to be applied even if partial matches […]
-
searchwp\query\partial_matches\fuzzy\minimum_length
- Control the minimum length for fuzzy matches.
-
searchwp\query\partial_matches\fuzzy\threshold
- Control the threshold that determines whether a potential fuzzy partial match is considered a match.
-
searchwp\query\partial_matches\minimum_length
- Control the minimum length for partial matches.
-
searchwp\query\partial_matches\tokens
- Manipulate partial match tokens during partial match logic application.
-
searchwp\query\partial_matches\wildcard_after
- Control whether a wildcard is added after a search query when performing partial match logic.
-
searchwp\query\partial_matches\wildcard_before
- Control whether a wildcard is added before a search query when performing partial match logic.
-
searchwp\query\per_page
- Customize how many results are returned per page.
-
searchwp\query\result\load_data
- Control whether SearchWP loads applicable Entry Attribute data for search results. Note: When this functionality is enabled, only the Attribute data added to the Engine will be loaded. See also searchwp\query\result\load_data\all_attributes
-
searchwp\query\result\load_data\all_attributes
- Control whether SearchWP loads all Entry Attribute data for search results. Note: When this functionality is enabled, all registered Attribute data will be loaded. See also searchwp\query\result\load_data
-
searchwp\query\results
- Modify the results found by SearchWP.
-
searchwp\query\search_string
- Customize the search string for a Query.
-
searchwp\query\tokens\limit
- Control the maximum number of accepted search tokens.
-
searchwp\query\tokens\use_stems
- Control whether token keyword stems are used for a Query.
Post
-
searchwp\source\post\{$post_type}\attribution
- Control whether results from a post type can be configured to attribute all weight to another post ID.
-
searchwp\source\post\{$post_type}\parent_attribution
- Control whether results from a post type can be configured to attribute relevance weight to their parents.
-
searchwp\source\post\{$post_type}\parent_attribution\strict
- Control how Posts without a parent are returned when parent attribution has been enabled.
-
searchwp\source\post\attributes\comment
- Customize a Comment before it is indexed.
-
searchwp\source\post\attributes\comments\args
- Control the arguments used to retrieve Comments for a post during indexing.
-
searchwp\source\post\attributes\comments\author
- When Comments have been added to a WP_Post-based Source, control whether the Comment Author is indexed.
-
searchwp\source\post\attributes\comments\email
- When Comments have been added to a WP_Post-based Source, control whether the Comment Email is indexed.
-
searchwp\source\post\attributes\content
- Customize post content prior to it being indexed.
-
searchwp\source\post\attributes\content\do_blocks
- Control whether SearchWP processes block editor (Gutenberg) blocks prior to indexing.
-
searchwp\source\post\attributes\meta
- Manipulate Custom Field (postmeta) data before it is indexed. See also searchwp\source\post\attributes\meta\${meta_key} for a single Custom Field.
-
searchwp\source\post\attributes\meta\{$meta_key}
- Manipulate Custom Field (postmeta) data for a single Custom Field before it is indexed. See also searchwp\source\post\attributes\meta\${meta_key} for all Custom Fields.
-
searchwp\source\post\attributes\meta\ignored
- By default SearchWP ignores meta keys that do not contain search-worthy content. You can customize which key(s) are ignored with this hook.
-
searchwp\source\post\attributes\taxonomy\term
- Manipulate the taxonomy terms for a post prior to indexing. Applies only when the Taxonomy has been included in an Engine. See also searchwp\source\post\attributes\taxonomy\terms to filter all terms at once.
-
searchwp\source\post\attributes\taxonomy\terms
- Manipulate the taxonomy terms for a post prior to indexing. Applies only when the Taxonomy has been included in an Engine. See also searchwp\source\post\attributes\taxonomy\term to filter individual terms.
-
searchwp\source\post\global_excerpt
- Control whether SearchWP finds a ‘global’ excerpt from all post content, not just post_content.
-
searchwp\source\post\global_excerpt\{$post_type}
- Control whether SearchWP finds a ‘global’ excerpt from all post content, not just post_content for a single post type.
Tokens
-
searchwp\tokens
- Manipulate tokens both when indexing and searching.
-
searchwp\tokens\apply_rules_to_pattern_matches
- Control whether SearchWP applies its validation rules (e.g. minimum length) to regular expression (regex) pattern matches.
-
searchwp\tokens\minimum_length
- Control what SearchWP uses as a minimum token (search term) length.
-
searchwp\tokens\regex_patterns
- SearchWP searches for regular expression pattern matches to keep certain strings in tact and avoid tokenization which may reduce the usefulness during search. By default there are a number of common regular expression patterns to extract strings of SKUs, dates, initials, function names, version numbers, and more. You can use this hook to add your […]
-
searchwp\tokens\regex_patterns\only_full_matches
- By default SearchWP will process only full matches for its regular expression patterns. If you would like SearchWP to also consider partial matches you may enable that behavior with this hook.
-
searchwp\tokens\strict
- Control whether SearchWP is strict with tokens. When disabled (which is the default behavior) SearchWP will remove accents from characters.
-
searchwp\tokens\tokenize_pattern_matches
- Control whether regex pattern matches are tokenized into individual parts.
Index
-
searchwp\background_process\http_basic_auth_credentials
- Teach the Indexer HTTP Basic Authentication credentials. Note: these credentials are for HTTP Basic Authentication, not your WordPress login credentials.
-
searchwp\index\aggressive_delta
- By default SearchWP utilizes its background process when handling delta updates. This helps keep page load times to a minimum. If instead you would prefer that SearchWP applies delta updates inline with content edits you may use this hook.
-
searchwp\index\process\enabled
- Control whether the Index delta handling process is enabled.
-
searchwp\index\rebuild
- This action is fired any time the Index is reset, just prior to the rebuilding job is triggered.
-
searchwp\index\tokens_max
- By default SearchWP will generate tokens in batches of 500 maximum. If you feel your server is capable of doing more than that, increasing this limit may improve performance of the indexing process. This hook can also be used to reduce the number of tokens generated per patch in case you are having trouble with […]
Indexer
-
searchwp\background_process\http_basic_auth_credentials
- Teach the Indexer HTTP Basic Authentication credentials. Note: these credentials are for HTTP Basic Authentication, not your WordPress login credentials.
-
searchwp\indexer\alternate
- Control whether SearchWP uses its alternate indexer. SearchWP automatically detects when the alternate indexer is necessary but this hook overrides that detection. See also: Alternate Indexer
-
searchwp\indexer\batch_size
- Control how many entries are indexed during each indexer batch.
-
searchwp\indexer\http_basic_auth_credentials
- Teach the Indexer HTTP Basic Authentication credentials. Note: these credentials are for HTTP Basic Authentication, not your WordPress login credentials.
Statistics
-
searchwp\admin\dashboard_widgets\statistics
- As part of SearchWP’s Statistics feature a Dashboard Widget is provided to allow for quick oversight into your search statistics when you log in to your WordPress Admin.
-
searchwp\admin\dashboard_widgets\statistics\days
- By default the Statistics Dashboard Widget shows popular searches over the past 30 days. Use this hook to modify that default.
-
searchwp\statistics\capability
- Control the Capability necessary to view SearchWP’s Statistics.
-
searchwp\statistics\log
- Control whether SearchWP logs this search.
Stopwords
-
searchwp\stopwords
- SearchWP uses Stopwords to both optimize the index and increase relevancy of search results. The primary method of customizing the list of Stopwords is by way of the Settings tab of the SearchWP Settings screen. You can however programmatically filter Stopwords as well.
-
searchwp\stopwords\suggestions
- Control whether SearchWP suggests Stopwords.
-
searchwp\stopwords\suggestions\limit
- Control the number of Stopwords suggestions shown by SearchWP.
-
searchwp\stopwords\suggestions\threshold
- Control the threshold used to determine suggested Stopwords.
BackgroundProcess
-
searchwp\background_process\http_basic_auth_credentials
- Teach the Indexer HTTP Basic Authentication credentials. Note: these credentials are for HTTP Basic Authentication, not your WordPress login credentials.
-
searchwp\background_process\load_maximum
- When SearchWP is monitoring CPU load it checks for a maximum load threshold. When this threshold is exceeded, SearchWP will scale back its indexing process so as to not further increase CPU load. If your server has many cores it’s likely this load maximum can be increased to match the capability of your server.
-
searchwp\background_process\load_monitoring
- SearchWP will monitor system CPU load when possible and scale back the indexing process so as to avoid service interruption for site visitors. Using this hook you can disable SearchWP’s load monitoring.
-
searchwp\background_process\load_throttle
- When SearchWP’s load monitoring detects that the CPU load threshold has been breached, a timeout is injected into the indexing process. You can use this hook to customize the duration of that timeout.
Document
-
searchwp\document\content
- Customize extracted document content.
-
searchwp\document\pdf_metadata\skip
- Whether PDF metadata should be skipped during indexing.
-
searchwp\document\skip
- Control whether SearchWP should skip processing a document.
Parser
-
searchwp\parser\pdf
- Utilize an external PDF parser to extract PDF content instead of SearchWP’s.
-
searchwp\parser\richtext
- Utilize an external rich text parser to extract rich text content instead of SearchWP’s.
-
searchwp\parser\text
- Utilize an external text parser to extract text content instead of SearchWP’s.
Debug
-
searchwp\debug
- Control whether debugging is enabled.
-
searchwp\debug\dir
- Modify where debug logs are stored.
Source
-
searchwp\source\attribute\options
- Modify the Attribute Options for a Source.
-
searchwp\source\check_db
- Control whether SearchWP validates a Source’s database properties.
Entry
-
searchwp\entry\data
- Customize an \SearchWP\Entry before it is indexed.
-
searchwp\entry\native
- Customize the native object of a \SearchWP\Entry.
Highlighter
-
searchwp\highlighter\case_insensitive
- Control case sensitivity when highlighting.
-
searchwp\highlighter\partial_matches
- Control whether highlighting considers partial matches.
AdminBar
-
searchwp\admin_bar
- Control whether SearchWP’s Admin Bar entry is enabled.
Synonyms
-
searchwp\synonyms
- SearchWP uses Synonyms to both optimize the index and increase relevancy of search results. The primary method of customizing the list of Synonyms is by way of the Settings tab of the SearchWP Settings screen. You can however programmatically filter Synonyms as well.
Attribute
-
searchwp\source\attribute\label
- Customize Source Attribute Label
License
-
searchwp\license\key
- Programmatically define your license key.
Native
-
searchwp\native\short_circuit
- Control whether SearchWP overrides native WordPress searches.
Settings
-
searchwp\settings\capability
- Control the Capability necessary to edit SearchWP’s settings.
SWP_Query
-
searchwp\swp_query\args
- Modify the arguments used when instantiating SWP_Query.
Misc
-
searchwp\auto_update_providers
- Note: This hook is applicable only when manually switching sites in a Multisite environment. SearchWP is able to perform Multisite searches but if you are manually switching sites using switch_to_blog() you must tell SearchWP about it. This does not happen automatically and is an opt-in requirement when using switch_to_blog()! Without this hook in place, SearchWP […]
-
searchwp\extensions
- Register an Extension to be used in SearchWP, specifically in the Extensions menu of the SearchWP settings UI.
-
searchwp\integration\wp-all-import
- By default, SearchWP will automatically accommodate processes run by WP All Import as per the method discussed here: How to Integrate with Content Imports/Migrations You can use this hook to prevent SearchWP from automatically integrating with WP All Import processes if you’d prefer to implement something on your own.
-
searchwp\missing_integration_notices
- By default SearchWP will check to see if there are any missing integration Extensions. You can disable that behavior with this hook.
-
searchwp\nuke_on_delete
- Whether SearchWP deletes all data on uninstallation
-
searchwp\options\dashboard_stats_link
- Control whether SearchWP’s Statistics link appears.
-
searchwp\options\settings_screen
- Control whether SearchWP’s options page appears.
-
searchwp\post__in
- Control a global limiter for \WP_Post IDs that are considered during indexing and searching.
-
searchwp\post__not_in
- Control a global exclusion of \WP_Post IDs to consider during indexing and searching.
-
searchwp\post_stati
- Control the considered post stati for \WP_Post-based Sources. Note that in order for this hook to properly take effect you must understand how SearchWP’s Index works. The Index represents the ‘maximum’ pool of potential results, and Queries are run against that Index to limit the entries returned. That said, in order to customize which post […]
-
searchwp\sources
- Control what content can be indexed and searched by SearchWP.
-
searchwp\valid_html_tags
- Control which HTML tags SearchWP will consider when extracting content to index.
-
searchwp\weights
- Customize the weight intervals available when configuring SearchWP Engine Source Attributes.