Вот вам код, должен работать на других блогах поидее, если нет, пишите, будем разбираться.
Это идет в файл functions.php вашего шаблона внутри тегов <?php ?>:
function my_filter() {
global $categories;
function my_dropdown_cats($parent, $level){
global $categories;
foreach ($categories as $category) { if ($category->parent == $parent){
$option .= '<option value="category/'.$category->category_nicename.'/">';
for ($i=0;$i<$level;$i++){
$option .="--";
}
$option .=" ";
$option .= $category->cat_name;
$option .= ' ('.$category->category_count.')';
$option .= '</option>';
$option .= my_dropdown_cats($category->cat_ID, $level+1);
}
}
return $option;
}
?>
<script type="text/javascript"><!--
var category = '';
var tag1 = '';
var tag2 = '';
var tag = '';
var link = '<?php bloginfo('url'); ?>/';
function filbutton() {
if ( tag1 != "" ) {
tag = '?tag='+tag1;
if ( tag2 != "" ) { tag = '?tag='+tag1+'+'+tag2;}
} else {if ( tag2 != "" ) { tag = '?tag='+tag2;}}
location.href = link+category+tag;
}
--></script>
<!-- Виджет начинается здесь -->
Показать все записи из:
<select name="category" id="cat" onchange='category=this.options[this.selectedIndex].value;'>
<option value="">Всех мест</option>
<?php
$categories = get_categories('pad_counts=1&hide_if_empty=0');
echo my_dropdown_cats(0, 0);
?>
</select>
Ограничить тегом:
<select name="tag1" id="tag1" onchange='tag1=this.options[this.selectedIndex].value;'>
<option value="">С любым тегом</option>
<?php
$tags=get_tags();
foreach ($tags as $tag1) {
$option = '<option value="'.$tag1->slug.'">';
$option .= $tag1->name;
$option .= '</option>';
$tag_options .= $option;
}
echo $tag_options;
?>
</select>
<small><a id="addtag" style="cursor:pointer" onClick='document.getElementById("tag2").style.display="block";document.getElementById("addtag").style.display="none"; document.getElementById("hidetag").style.display="block";'>+Добавить еще один тег</a></small>
<div id="tag2" style="display:none">
И тегом:
<select name="tag2" onchange='tag2=this.options[this.selectedIndex].value; '>
<option value="">Без дополнительных тегов</option>
<?php
echo $tag_options;
?>
</select>
<small><a id="hidetag" style="cursor:pointer" onClick='document.getElementById("tag2").value=""; tag2=""; tag=""; document.getElementById("tag2").style.display="none";document.getElementById("addtag").style.display="block";'>-Убрать дополнительный тег</a></small></div>
<input id="filter-button" class="button" type="submit" onClick='filbutton();' value="Отфильтровать"/>
<?php
}
Это вставляется в сайдбар в нужном месте или вставляется в php widget:
<div class="класс ваших виджетов"><h3>Фильтр:</h3>
<?php my_filter(); ?>
</div>
Код очень грязный, непонятный и ламерский, так что буду рад правкам и улучшениям 