Multiple keyword Search
Thu Jun 01 2023 10:07:31 GMT+0000 (Coordinated Universal Time)
Saved by
@hasan1d2d
function sps_custom_multiple_keyword_search( $search, $wp_query ) {
$search_terms = $wp_query->get( 's' );
$search_terms = trim( $search_terms );
if ( empty( $search_terms ) ) {
return $search;
}
// Check if search query contains the "+" symbol
if ( defined('DOING_AJAX') && DOING_AJAX && strpos( $search_terms, '+') !== false ) {
$search_terms_array = explode( '+', $search_terms );
$search_terms_array = array_map( 'trim', $search_terms_array );
$search_terms_array = array_filter( $search_terms_array );
if ( empty( $search_terms_array ) ) {
return $search;
}
global $wpdb;
$search_sql = array();
foreach ( $search_terms_array as $term ) {
$term = esc_sql( $term );
$search_sql[]= "({$wpdb->posts}.post_title LIKE '%{$term}%' OR {$wpdb->posts}.post_content LIKE '%{$term}%')";
}
if ( ! empty( $search_sql ) ) {
$search_sql = implode( ' OR ', $search_sql );
$search = " AND ({$search_sql})";
}
}
return $search;
}
add_filter( 'posts_search', 'sps_custom_multiple_keyword_search', 10, 2 );
content_copyCOPY
Comments