Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if( !is_admin() ):
- add_filter('pre_get_posts','my_filter_the_search',10,1);
- endif;
- function my_filter_the_search($query){
- $general_site_search = filter_input(INPUT_GET, 's', FILTER_SANITIZE_STRING);
- if(!empty($general_site_search)):
- add_filter( 'posts_search', '__search_by_title_only', 500, 2 );
- endif;
- }
- function __adapted_search_function($search, $query) {
- if(is_admin() || !$query->is_main_query() || !$query->is_search)
- return; //determine if we are modifying the right query
- global $wpdb;
- $search_term = $query->get('s');
- $search = ' AND (';
- //point 1
- $search .= "($wpdb->posts.post_title LIKE '%$search_term%')";
- //need to add an OR between search conditions
- $search .= " OR ";
- //point 2
- $search .= "($wpdb->posts.post_excerpt LIKE '%$search_term%')";
- //need to add an OR between search conditions
- $search .= " OR ";
- //point 3
- $search .= "($wpdb->postmeta.meta_key = 'mcb-product' AND $wpdb->postmeta.meta_value LIKE '%$search_term%')";
- //add the filter to join, sql will error out without joining the tables to the query
- add_filter('posts_join', '__custom_join_tables');
- return $search . ') ';
- }
- function __custom_join_tables($joins) {
- global $wpdb;
- $joins = "JOIN $wpdb->postmeta ON ($wpdb->postmeta.post_ID = $wpdb->posts.ID)";
- return $joins;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement