We'll create fresh WordPress site with Admin Search installed. You have 20 minutes to test the plugin after that site we'll be deleted.
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.
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 the WP_Query
arguments array for all searched post types. The filter argument supplied is an array of WP_Query
arguments, add, remove or modify supported argumentsadmin_search_{Post Type}_query
to modify the WP_Query
arguments array for a specific post type. The filter argument supplied is an array of WP_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 the get_terms
arguments array for all searched terms (taxonomies). The filter argument supplied is an array of get_terms
arguments, add, remove or modify supported argumentsadmin_search_{Term}_query
to modify the get_terms
arguments array for a specific term (taxonomy). The filter argument supplied is an array of get_terms
arguments, add, remove or modify supported arguments. Replace {Term} with the name of the term to modifyadmin_search_comments_query
to modify the WP_Comment_Query
arguments array for all searched comments. The filter argument supplied is an array of WP_Comment_Query
arguments, add, remove or modify supported argumentsadmin_search_users_query
to modify the WP_User_Query
arguments array for all searched users. The filter argument supplied is an array of admin_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
and admin_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 for admin_search_pre_results
or search results for a given query for admin_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
and post_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 of admin_search_fields
when adding custom fieldsExamples:
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 );