I’m using bainternet’s method for searching custom post_types and it works great. However, I’ve recently been requested to return more than one “specific” post type and perhaps individual pages for a support section on our site.
I thought adding additional hidden fields would do it, but that didn’t work. And I have no clue how this will work with pages.
Any help would be appreciated!
In the template:
<form action="http://apollo.website.net/" id="searchform" method="get" role="search">
<div><label for="s" class="screen-reader-text">Search for:</label>
<input type="text" id="s" name="s" value="">
<input type="submit" value="Search" id="searchsubmit">
<input type="hidden" name="post_type" value="software" />
</div>
</form>
In functions.php:
/* Custom Search Queries */
function SearchFilter($query) {
$post_type = $_GET['post_type'];
if (!$post_type) {
$post_type = 'any';
}
if ($query->is_search) {
$query->set('post_type', $post_type);
};
return $query;
}
change
to
i have to run but this should work , just add as many hidden fields as you need for each post type
You could do it like this to switch between a singular set type and any..
Unchecked searches your specific type, checked sets the post type to any..
To me works that solution (same as Bainternet’s, but without “[]” after “post_type”):
And to get a specific template for search results based on the post type(s) (on functions.php):