How to allow searching a custom meta key in admin list table?

After posting the same question to multiple AI chatbots, CoPilot finally gave me an answer that works for both:

add_action( 'pre_get_posts', 'filter_files_admin_columns' );
function filter_files_admin_columns( $query ) {
    if ( !is_admin() || 'eri-files' !== $query->get( 'post_type' ) ) {
        return;
    }

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

    function custom_search_query( $search, $wp_query ) {
        global $wpdb;

        if ( empty( $search ) ) {
            return $search;
        }

        $search_term = $wp_query->get( 's' );
        if ( ! $search_term ) {
            return $search;
        }

        $search = "AND ( 
            {$wpdb->posts}.post_title LIKE '%" . esc_sql( $wpdb->esc_like( $search_term ) ) . "%' 
            OR {$wpdb->posts}.ID IN (
                SELECT post_id 
                FROM {$wpdb->postmeta} 
                WHERE meta_key = '_post_url' 
                AND meta_value LIKE '%" . esc_sql( $wpdb->esc_like( $search_term ) ) . "%'
            )
        )";

        return $search;
    }
}

techhipbettruvabetnorabahisbahis forumutaraftarium24edueduseduseduedueduseduseduseduedus