Como montar um formulário de busca no WordPress, filtrando por categoria ou taxonomia
Postado em 10 de maio de 2016 por Henderson | Categorias: Busca | Tags: busca na categoria, busca na taxonomia, filtro de busca | Sem comentários » | Comentar
Nos temas de WordPress é comum ter o arquivo searchform.php que possui o formulário de busca nativo do sistema. Neste artigo vamos ver como editar esse formulário colocando um filtro por categoria ou taxonomia automaticamente se o visitante estiver na página de categoria ou de taxonomia do site.
Código do formulário de busca (searchform.php)
<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <input type="text" name="s" id="s" class="input_busca" value="busque aqui" /> <input type="submit" name="submit" id="searchsubmit" class="input_busca_enviar" value="Buscar" /> </form>
Primeiro é necessário determinar se o visitantes esta na página de categoria (category.php) ou em uma página de taxonomia (taxonomy.php). Depois altere o formulário de busca inserindo os campos hidden para categoria e taxonomia, estes campos vão ser os filtros da busca, abaixo o código completo:
<?php // pega Slug e ID da categoria corrente $categoria = get_term_by('name', single_cat_title('',false), 'category'); $categoria_sel = $categoria->slug; $categoria_id_sel = get_query_var('cat'); // pega Slug da taxonomia corrente $coluna = get_term_by('name', single_cat_title('',false), 'coluna'); $coluna_sel = $coluna->slug; ?> <form role="search" method="get" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <input type="search" placeholder="Para onde você quer ir?" value="" name="s" title="Para onde você quer ir?"> <?php if ($categoria_sel != ""){ ?> <input type="hidden" name="cat" value="<?php echo $categoria_id_sel; ?>" /> <?php } ?> <?php if ($coluna_sel != ""){ ?> <input type="hidden" name="taxonomy" value="coluna" /> <input type="hidden" name="term" value="<?php echo $coluna_sel; ?>" /> <?php } ?> <button type="submit" class="fa fa-search t t-op"></button> </form>
Obs.: o nome “coluna” que aparece no código é o nome da taxonomia personalizada, basta trocar para o nome da taxonomia criada em seu site.