Copy this code to your theme’s functions.php and it will return posts in search result also by their category/tag name.

function all_search_where($where){
global $wpdb;
if (is_search())
$where .= "OR (t.name LIKE '%".get_search_query()."%' AND {$wpdb->posts}.post_status = 'publish')";
return $where;
}

function all_search_join($join){
global $wpdb;
if (is_search())
$join .= "LEFT JOIN {$wpdb->term_relationships} tr ON {$wpdb->posts}.ID = tr.object_id INNER JOIN {$wpdb->term_taxonomy} tt ON tt.term_taxonomy_id=tr.term_taxonomy_id INNER JOIN {$wpdb->terms} t ON t.term_id = tt.term_id";
return $join;
}

function all_search_groupby($groupby){
global $wpdb;
$groupby_id = "{$wpdb->posts}.ID";
if(!is_search() || strpos($groupby, $groupby_id) !== false) return $groupby;
if(!strlen(trim($groupby))) return $groupby_id;
return $groupby.", ".$groupby_id;
}

add_filter('posts_where','all_search_where');
add_filter('posts_join', 'all_search_join');
add_filter('posts_groupby', 'all_search_groupby');

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

We are sorry that this post was not useful for you!

Let us improve this post!