AFAIK, out-of-the-box WordPress does not include taxonomies, such as tags and categories, in it’s search, only post titles & content.
I’m sure this has always been the case, so I’m a little confused as to why it ‘used to work’. Perhaps the pages have been modified, and used to contain the search terms themselves, but no longer do?
UPDATE: Taking a look at your functions.php
, I see three possible troublemakers;
- Line 572,
add_filter('pre_get_posts', 'query_post_type');
- Line 597,
add_filter('pre_get_posts','SearchFilter');
- Line 776,
add_filter('posts_groupby', 'group_by_post_type' );
I suggest, one at a time, commenting out the line (prepend the line with //
) and then testing a search. If there are no improvements, try all three commented out and work your way backwards. Either way you should be able to isolate the problem.
Also, two minor improvement suggestions (off-topic);
- Remove the line
add_action('init', 'my_init_method');
(it’s worthless) - Remove the two
update_option
calls at the top (unneccessary database writes on every request).