jQuery Удобно с этим,
удаляет атрибуты имени на всех этих флажках и добавляет скрытый ввод для cat, затем заполняет его значение на основе флажков
<form role="search" class="cat-search" action="<?php bloginfo('url'); ?>" method="get">
<input type="checkbox" value="0" id="cat0" class="cats"/><label for="cat0">all categories</label>
<input type="checkbox" value="1" id="cat1" class="cats"/><label for="cat1">category 1</label>
<input type="checkbox" value="2" id="cat2" class="cats"/><label for="cat2">category 2</label>
<input type="checkbox" value="3" id="cat3" class="cats"/><label for="cat3">category 3</label>
<input type="checkbox" value="4" id="cat4" class="cats"/><label for="cat4">category 4</label>
<input type="checkbox" value="5" id="cat5" class="cats"/><label for="cat5">category 5</label>
<input type="hidden" id="cat" name="cat" />
<input name="s" size="25" type="text" placeholder="search after select categories" />
<input type="submit" class="cat-search" value="search" />
</form>
Тогда ваш jQuery чтобы присвоить значение скрытым входам, когда флажки установлены
$('body').on('click', '.cats', function() {
var cats = $('.cats:checked').map( function() {
return this.value;
}).get().join(",");
$('#cat').val( cats );
});
Просто примечание, запятая (,) в URL будет закодирована и будет выглядеть примерно так:
yoursite.com/?cat=0%2C1%2C2%2C3%2C4&s=bah
хотя это не должно иметь значения, если вы обрабатываете значение на php