Description
Admin Search makes searching your WordPress website easy by bringing results from all your post types, media, taxonomies, comments, users and admin pages together in a single, simple-to-use interface, seamlessly integrated into the WordPress admin interface.
Choose which post types and taxonomies are searched and the number of results displayed for each. Admin Search also supports custom post types and taxonomies.
Admin Search is a lightweight plugin with filter hooks for deep customization.
Features
- Search everything on your WordPress site, anywhere
- Simple and easy to use
- Sources of search results are customizable
- Extend the search query with filter hooks
Configure & Extend
Admin Search can be extended by using filter hooks. The following filters are available:
admin_search_query
to modify the search query string. The filter argument supplied is a string containing the search queryadmin_search_sources
to modify the search sources. The filter argument supplied is an array of sources, add, remove or modify sourcesadmin_search_posts_query
to modify theWP_Query
arguments array for all searched post types. The filter argument supplied is an array ofWP_Query
arguments, add, remove or modify supported argumentsadmin_search_{Post Type}_query
to modify theWP_Query
arguments array for a specific post type. The filter argument supplied is an array ofWP_Query
arguments, add, remove or modify supported arguments. Replace {Post Type} with the name of the post type to modifyadmin_search_terms_query
to modify theget_terms
arguments array for all searched terms (taxonomies). The filter argument supplied is an array ofget_terms
arguments, add, remove or modify supported argumentsadmin_search_{Term}_query
to modify theget_terms
arguments array for a specific term (taxonomy). The filter argument supplied is an array ofget_terms
arguments, add, remove or modify supported arguments. Replace {Term} with the name of the term to modifyadmin_search_comments_query
to modify theWP_Comment_Query
arguments array for all searched comments. The filter argument supplied is an array ofWP_Comment_Query
arguments, add, remove or modify supported argumentsadmin_search_users_query
to modify theWP_User_Query
arguments array for all searched users. The filter argument supplied is an array ofadmin_search_users_query
arguments, add, remove or modify supported argumentsadmin_search_website_titles
to modify the labels array for external websites. The filter argument supplied is an array of predefined domains and titles, add, remove or modify domains and titlesadmin_search_pre_results
andadmin_search_post_results
to modify the results array before or after results are appended to the array. The filter argument supplied is an empty array foradmin_search_pre_results
or search results for a given query foradmin_search_post_results
, add, remove or modify result itemsadmin_search_fields
to modify the searchable fields array. The filter argument supplied is an array of searchable fields (post_title
,post_name
,post_excerpt
andpost_content
)admin_search_meta_queries
to add custom fields to the searchable fields array. The filter argument supplied is an empty array. Use this filter instead ofadmin_search_fields
when adding custom fields
Examples:
Modify the query string before a search is initiated
// Correct the spelling of dog when searching
add_filter( 'admin_search_query', function( $query ) {
if ( 'dog' === $query ) {
$query = 'doggo';
}
return $query;
} );
Modify the WP_Query
parameters before a search is initiated
// Exclude post with the ID 96
add_filter( 'admin_search_posts_query', function( $query ) {
$query['post__not_in'] = array( 96 );
return $query;
} );
Add a custom field to the searchable fields
// Add the price custom field to the searchable fields
add_filter( 'admin_search_meta_queries', function( $fields, $post_type ) {
if ( 'post' === $post_type ) {
$fields[] = 'price';
}
return $fields;
}, 10, 2 );
Modify the search results after a search has initiated
// Add custom results from external API
add_filter( 'admin_search_post_results', function( $results, $q ) {
$results[ 'custom' ][ 'post_type' ] => array(
'name' => 'custom',
'label' => 'Custom'
);
$json = file_get_contents( 'https://example.com?search=' . $q );
$obj = json_decode( $json );
foreach ( $obj as $item ) {
$results[ 'custom' ][ 'posts' ][] = array(
…
);
}
return $results;
}, 10, 2 );
Screenshots
Installation
- Visit Plugins > Add New
- Search for “Admin Search”
- Activate Admin Search from your Plugins page
- Go to Settings > Admin Search and choose what to search on your WordPress website
Reviews
Contributors & Developers
“Admin Search” is open source software. The following people have contributed to this plugin.
Contributors“Admin Search” has been translated into 1 locale. Thank you to the translators for their contributions.
Translate “Admin 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.4.0
- New Feature: Introducing search suggestions! Now, whenever you search using a term with 9 or more characters and it returns results, it will be added to a database. The more you search that term, the higher it will rank. When you start typing 3 or more characters into the search box, autocomplete will display if it matches a term in the database, hit the right arrow key to apply it. This feature is disabled by default, go to Settings > Admin Search to enable it
- A new setting to enable or disable auto searching has been added. Typically, search results start displaying as you type, you can now disable this and only show results by hitting the enter key
- Many UI updates and some improvements to the mobile interface
- Fixed issues with hotkey handling. Navigating the results with the up and down keys is improved, hitting the right arrow key and the enter key behave better depending on what is in focus
- The search input has been switched from a traditional HTML input field and form to a contenteditable div, this shouldn’t affect most users but may affect OS or browser settings and extensions that alter the way inputs work. Testing is ongoing
- Added support for WP_Block post type
- Removed the user display as setting. Users will be displayed using their username from now on
- Reduced the default result count to 5. This can still be increased to show more results initially
- Disabled Ctrl + S and Cmmd + S keyboard shortcut due to conflicts with WordPress and browser functionality
- Fixed PHP8 related issues
- Fixed an issue where default settings weren’t applied when first installing and activating the plugin
- Fixed an issue where no message is displayed if there’re no results
- Fixed an issue where multiple results are focussed initially
- Fixed an issue with an undefined value displaying on the account setting page
- Tested on WordPress up to version 6.5.3
1.3.3
- Fixed visual issues with media results
- Updated donation link
1.3.2
- Tested on WordPress up to version 6.4.4a
- Added Woocommerce SKU field as searchable field
1.3.1
- Minor fixes to broken text styles
1.3.0
- Results can be previewed from within the search box
- Extended search to include post names (this is also known as the post slug, typically used in the post’s permalink)
- Added the
admin_search_fields
filter to include or exclude searchable fields. Current searchable fields include: post_title, post_name, post_excerpt and post_content - Added the
admin_search_meta_queries
filter to include meta queries as searchable fields. This can be used to add custom fields to the list of searchable fields - These changes necessitated the addition of a custom WP_Query parameter, replacing
s
withas_s
. If you have previously added a filter which references or modifies thes
parameter, it will need to be updated toas_s
(as simple as replacing old with new) - The Search Box is now moveable
1.2.3
- Fixed an issue with alignment when viewing on the front end
- Fixed an issue where admin menus with no sub menus were not working correctly in the search results
1.2.2
- Fixed an issue that could cause results not to be displayed if no post types are selected in settings
1.2.1
- Tested on WordPress 6.1.2
- Pressing the escape key with search results open will now clear the search rather than closing the search box. Hitting the escape key with no results will close the search box completely
- Fixed an issue that could cause an error to be displayed on the settings page if no post types are enabled
- Fixed an issue that could throw a 500 error if a taxonomy did not have an associated post type
1.2.0
- New Feature: Additional search results can now be loaded within the search box. If a source has more results for a query than the Result Count limit, a load more button will appear below those results
- New Feature: An option has been added to the user profile page which allows users to hide their profile from searches. Admins and other users with the
edit_user
capability can toggle this option for other users - New Feature: Search for items by their ID by typing a hashtag followed by the ID. Eg. Searching #889 will list the item with that ID
- New Feature: A link to the native WordPress admin search page is displayed at the top of each results group
- New Feature: A shortcut to the Admin Search settings page now appears in the search box when hovering over the search bar
- New Feature: Add status: followed by a post status such as published, draft or pending after your search term to only see results with that status. This is limited to post type results
- Update: Tweaks to the design, including an increased width and height, larger typography and improvements to colors
- Update: External websites can now be labelled using a new filter. For example: google.com appears as Google. To add a label, use:
admin_search_website_titles
, learn more about this filter on the plugin page on www.remarpro.com - Update: New filter hook
admin_search_sources
allows developers to add, modify or remove search sources - Update: New filter hook
admin_search_{Post Type}_query
allows developers to add, modify or remove arguments from the WP_Query arguments for a specific post type. This is a dynamic filter, replace {Post Type} with the name of the post type you wish to filter - Update: New filter hook
admin_search_{Term}_query
allows developers to add, modify or remove arguments from the WP_Query arguments for a specific term. This is a dynamic filter, replace {Term} with the name of the term you wish to filter - Update: New filter hook
admin_search_pre_results
andadmin_search_post_results
allows developers to add or modify items in the results array before or after other results are appended to the array respectively - Update: Links for plugin help and ways to support the plugin have been added to the footer on the plugin settings page
- Update: The Result Count options have been changed and the unlimited option removed entirely. The default Result Count value is now 10, your current Result Limit is unchanged until you update it on the settings page
- Update: The minimum query length has been decreased from 3 to 2 to accomodate ID searches
- Update: Users are now searchable by ID
- Fix: Addressed an issue causing post, page and attachment results to display in searches when all post types are disabled
- Fix: Addressed inconsistencies in the accessibility of the search box
- Fix: Started adding support for keyword highlighting on comments, users and admin page results. This is still WIP and may not show for every result, especially if the keyword is in the content but not in the title
- Fix: Improved user access. Eg. now only users who have the capability to edit other users’ posts can use Admin Search
- Fix: The query string has been added to all filter hooks allowing developers to reference the search query in the filter hook callback
1.1.4
- Fix: Addressed an issue causing the search box to display when typing in an input
- Fix: Addressed an issue causing result titles to be hidden when a forward slash was used in the search query
1.1.3
- Update: Tested on version 5.9 of WordPress
1.1.2
- Update: Tested on version 5.8 of WordPress
1.1.1
- Update: The search UI is now centered and the scrim is removed. This makes it easier to access or view content on the page when the search UI is open
1.1.0
- New Feature: Users are now searchable (by username, display name, email address or role)
- New Feature: Posts can now be searched for by author
- New Feature: Posts can now be searched for by date (year, month, or day posted, or posted before or after a date). This supports most date formats
- New Feature: External websites can be added to search results. When performing a search, links to the external websites will be displayed, this is useful for including links to search results on other websites
- New Feature: The Admin Search is now accessible on the front end of the website. This can be enabled or disabled in the Admin Search settings
- Update: Taxonomies are now individually selectable
- Update: Admin menu searches now search the actual admin menus rather than a static list. This is still in beta and is disabled by default, this does not currently work when searching from the front end of the website
- Update: A new filter has been added to modify the search query string:
admin_search_query
- Update: A new filter has been added to modify the users query:
admin_search_users_query
- Update: The colors of the search UI have been updated to match the WordPress color update. Additionally, developers can customize the search UI colors using CSS variables
- Update: The search UI colors now match the current admin color scheme (except for the Light scheme)
- Update: General CSS updates (mostly for mobile and smaller browser sizes)
1.0.3
- Fix: Addressed javascript error thrown when Admin Search is disabled
- Update: Tested on version 5.7 of WordPress
1.0.2
- Fix: Added correct version number to stylesheet and script URLs
- Update: Tested on version 5.4 of WordPress
1.0.1
- Fix: Limit is now applied to each post type, not the total number of posts returned
- Update: Plugin has been tested back to WordPress 4.9.2