В WP есть шаблон строки поиска, который можно переопределить, поместив в тему файл
searchform.php и поместив в него нужный шаблон. Например такой:
<form role="search" method="get" id="searchform" class="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<div>
<label class="screen-reader-text" for="s"><?php _x( 'Search for:', 'label' ); ?></label>
<input type="text" value="<?php echo get_search_query(); ?>" name="s" id="s" />
<input type="radio" name="cat" value="21">
<input type="radio" name="cat" value="22">
<input type="radio" name="cat" value="23">
<input type="submit" id="searchsubmit" value="<?php echo esc_attr_x( 'Search', 'submit button' ); ?>" />
</div>
</form>
В этом куске кода есть некоторые изменения от дефолтного шаблона - input с типом radio (собственно, как и в вопросе:)), он будет отправлять в поисковый запрос параметр
cat со значением 21, или 22, или 23, что в свою очередь будет выведет в результаты поиска посты, которые относятся к категории с id = 21, 22, или 23.
Что касается шаблона, то в WP шаблон результатов поиска можно переопределить так же, как и шаблон формы поиска, поместив в директорию темы файл search.php (например) с
Template Name: Search Page, ну и в нем уже писать запрос для вывода постов. И можно этот шаблон варировать в зависимости от значения $_GET['cat'] .
Более подробная инфа есть
тут и
тут