Search by file name in the Media Library

wordpress

Solution

I found a solution in WordPress Developers #45153, but here are all related Q&A's:

How to filter post listing using a custom field?

Limiting Admin Backend Search to Title

Better search for Wordpress admin backend

add_filter( 'posts_search', 'guid_search_so_14940004', 10, 2 );

function guid_search_so_14940004( $search, $a_wp_query ) 
{
    global $wpdb, $pagenow;

    // Only Admin side && Only Media Library page
    if ( !is_admin() && 'upload.php' != $pagenow ) 
        return $search;

    // Original search string:
    // AND (((wp_posts.post_title LIKE '%search-string%') OR (wp_posts.post_content LIKE '%search-string%')))
    $search = str_replace(
        'AND ((', 
        'AND (((' . $wpdb->prefix . 'posts.guid LIKE \'%' . $_GET['s'] . '%\') OR ', 
        $search
    ); 

    return $search;
}

There was a suggestion that I need to verify, but seems good:

Change `$_GET['s']` to `$a_wp_query->query_vars['s']` so that this also works when the search function is called via an ajax POST, eg when using the "Create Gallery" dialogue.

Problem

Inside the Admin Panel, in Media -> Library, how to search media files by file name in "search media" box? I know the file name is placed in the "GUID" column in the database, but I don't know where I can find the piece of code responsible for media search, ex. MySQL `select`. Now it only searches in the `post_title` column. I also tried to find `$_REQUEST['s']`, but with without result.

Original source