Você está procurando uma maneira de criar múltiplos modelos de busca para tipos de post personalizados? Embora provavelmente exista um plugin para isso, criamos um snippet de código rápido que você pode usar para criar múltiplos modelos de busca para tipos de post personalizados no WordPress.
Instruções:
Modelo de busca
Crie um novo arquivo chamado search.php e adicione o seguinte modelo de busca. Altere o $search_refer= CUSTOM_POST_TYPE para os nomes dos seus tipos de post. Você também precisará alterar o caminho do modelo para o modelo correspondente que deseja exibir os resultados.
<?
/* Template Name: Search Results */
$search_refer = $_GET["post_type"];
if ($search_refer == 'CUSTOM_POST_TYPE') { load_template(TEMPLATEPATH . '/template_one-name.php'); }
elseif ($search_refer == 'CUSTOM_POST_TYPE') { load_template(TEMPLATEPATH . '/template_two-name.php'); };
?>
Exibir resultados da busca
Adicione esta query_post logo acima do loop nos modelos de busca que você criar. Não se esqueça de alterar o CUSTOM_POST_TYPE para cada um dos seus modelos.
<?php
$args = array(
'post_type'=> 'CUSTOM_POST_TYPE',
's' => $s,
'paged' => $paged,
);
query_posts($args);
?>
Formulário de busca
Adicione este HTML ao modelo que você deseja exibir o formulário de busca. Você precisará alterar o nome CUSTOM_POST_TYPE para o tipo de post que deseja buscar. Você precisará criar um novo formulário para cada tipo de post personalizado ou usar um menu de seleção para definir o post_type.
<form id="searchform" action="<?php bloginfo('home'); ?>/" method="get">
<input id="s" maxlength="150" name="s" size="20" type="text" value="" class="txt" />
<input name="post_type" type="hidden" value="CUSTOM_POST_TYPE" />
<input id="searchsubmit" class="btn" type="submit" value="Search" />
</form>
Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste snippet de código, considere conferir nossos outros artigos no site, como: 43 melhores temas de fotografia para WordPress e como criar um formulário de contato no WordPress.
Olá, obrigado por este tutorial.
Estou tentando criar um formulário de pesquisa personalizado para colocar na barra lateral da seção de blog do meu site. Quero que o formulário de pesquisa procure apenas em posts (posts de blog padrão, não um tipo de post personalizado) – e ignore qualquer outro conteúdo, por exemplo, páginas. É possível adaptar este método para o que estou tentando fazer?
Eu tentei, mas sem sucesso.
Muito obrigado
Oi Sally,
Experimente este tutorial sobre como filtrar tipos de postagem dos resultados de pesquisa. Espero que você ache útil 🙂
Miau miau miau-ravilhoso )
Perfeito. Obrigado!
Desculpe pela pergunta de novato, mas existe uma maneira de ir um nível além e pesquisar apenas um meta_field personalizado dentro do tipo de post personalizado? Tenho procurado por dias e este é o script mais próximo que consegui encontrar. Atualmente, ele pesquisa os títulos e o conteúdo do post, mas tenho um monte de campos personalizados para o CPT e só quero que o usuário pesquise um campo específico. Pensamentos?
é possível adaptar estas instruções para pesquisar uma taxonomia personalizada em vez de um post personalizado? Estou tentando retornar uma pesquisa separada para cada taxonomia personalizada e não estou entendendo bem. Obrigado!