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;
}
}