How To Search A Specific Custom Post Type (Only!) in WordPress

Development

If you’re like me, you use custom post types a LOT when you’re doing projects (or on your own site, if I’ve done it for you!).  There’s a lot of value in having a type of content that’s unrestrained and flexible.  Sometimes, however, you want to be able to search a particular post type, and leave out all of the other results (pages, blog posts, etc).  Here’s a handy snippet that will let you do just that (for example, a ‘products’ post type):

<form method="get" id="searchform" action="<?php bloginfo('home'); ?>/">
<input type="text" placeholder="Search" name="s" id="s" />
<input type="hidden" name="post_type" value="products" />
<input type="hidden" id="searchsubmit" />
</form>

Line 3 is the key – it’s a hidden field that defines the “post_type” as whatever value you have there (the query variable, not the name mind you).

As an added bonus, this particular search button clears the default text on click so as not to have an awkward empty search box when you first access it.

Add this into any template and you’ve got yourself a laser-specific search box for your custom post needs.