Admin Search

plugin banner

Admin Search adds a simple, easy-to-use interface to your WordPress admin site that gives you and your WordPress admin users the ability to search acr …

Author:Andrew Stichbury (profile at wordpress.org)
WordPress version required:4.9.2
WordPress version tested:6.4.4
Plugin version:1.3.3
Added to WordPress repository:18-03-2020
Last updated:20-02-2024
Rating, %:88
Rated by:14
Plugin URI:
Total downloads:11 301
Active installs:1 000+
plugin download
Click to start download

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 query
  • admin_search_sources to modify the search sources. The filter argument supplied is an array of sources, add, remove or modify sources
  • admin_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 arguments
  • admin_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 modify
  • admin_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 arguments
  • admin_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 modify
  • admin_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 arguments
  • admin_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 arguments
  • admin_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 titles
  • admin_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 items
  • admin_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 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
ChangeLog