WordPress

Busca para post type especifico – Custom Post Type

Salve galera, nesse pequeno tutorial de WordPress, vou mostrar como criar uma busca para post type específico. Conforme prometi no meu post sobre como criar custom post type, vou ensinar diversos macetes bastante úteis quando se esta trabalhando com Tipo de post personalizado e todo post que for relacionado com post-type vou tentar colocar depois do título, Custom Post Type para facilitar a ligação entre eles.

Mas para que serve a busca para post type específico?

Relembrando, criamos um tipo de post personalizado chamado portifolio e vou continuar usando ele como exemplo, então se você deseja colocar um campo de busca dentro da sua página de portifólio, é bem provável que você só queira exibir resultados para o portifólio não é mesmo? Mãos à obra.

Bom, para criar a busca para post específico, vamos criar um arquivo chamado searchform-portifolio.php, você pode duplicar o conteúdo do arquivo do seu tema chamado searchform.php e apenas fazer alguns ajustes, ou se o seu tema não tem o searchform.php basta copiar o código abaixo.

<form id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">
 <!-- CAMPO DE TEXTO DA BUSCA -->
 <input class="inlineSearch" type="text" name="s" value="Digite o que procura" onfocus="if (this.value == 'Digite o que procura') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Digite o que procura';}" />
 <!-- ALTERE O VALUE DA LINHA ABAIXO PARA O NOME DO SEU CUSTOM POST TYPE -->
 <input type="hidden" name="post_type" value="portifolio" />
 <!-- BOTÃO ENVIAR -->
 <input class="inlineSubmit" id="searchsubmit" type="submit" alt="Search" value="Search" /></form>

Bom, o segredo de tudo esta na linha 5, já que o restante do código é igual ao código de busca original do WordPress, então se você duplicou o seu searchform.php, deve incluir somente a linha 5, ou então alterar o value=portifolio pro nome do seu post personalizado.

Agora, basta salvar o arquivo e enviar para o seguinte caminho /wp-content/themes/nome-do-seu-tema. Pronto, tudo ok com nosso form de busca para post específico, mas ainda precisa inserir o código pra que o form seja exibido no template, então no exemplo, vou colocar a busca dentro da página de Portifólio (você adiciona onde for necessário, página, single, header, footer), pra isso, vou alterar o arquivo chamado page-portifolio.php e vou colocar ele onde quero que apareça o campo de busca, no meu caso, coloquei antes do loop, o seguinte código:

PHP

include (TEMPLATEPATH . '/searchform-portifolio.php');

Salve o arquivo page-portifolio.php, envie pro seu servidor, e já pode ir pro frontend testar.

Clique aqui e veja o exemplo
Clique aqui e veja o código completo no GitHub
Clique aqui e faça download do arquivo do exemplo.

E ae, acharam fácil implementar busca para post type específico no WordPress? Qualquer coisa, comentem!

Fonte: WordPress Stackexchange

Se o post te ajudou curte a página, não custa nada e me incentiva a continuar escrevendo.
Posts recomendados
Comentários

    Envie seu comentário.

    Seu email não será publicado