Você está procurando uma maneira de criar vários modelos de pesquisa para tipos de post personalizados? Embora provavelmente exista um plug-in para isso, criamos um trecho de código rápido que você pode usar para criar vários modelos de pesquisa para tipos de post personalizados no WordPress.
Instruções:
Modelo de pesquisa
Crie um novo arquivo chamado search.php e adicione o seguinte modelo de pesquisa. Altere $search_refer=
CUSTOM_POST_TYPE
para os nomes de 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 pesquisa
Adicione esse query_post
logo acima do loop nos modelos de pesquisa que você criar. Não se esqueça de alterar o CUSTOM_POST_TYPE
para cada um de seus modelos.
<?php $args = array( 'post_type'=> 'CUSTOM_POST_TYPE', 's' => $s, 'paged' => $paged, ); query_posts($args); ?>
Formulário de pesquisa
Adicione este HTML ao modelo que você deseja exibir o formulário de pesquisa. Você precisará alterar o nome CUSTOM_POST_TYPE
para o tipo de postagem que deseja pesquisar. 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 primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como adicionar corretamente trechos de código no WordPress para não danificar acidentalmente seu site.
Se você gostou desse snippet de código, considere dar uma olhada em nossos outros artigos no site, como: 43 melhores temas de fotografia para WordPress e como criar um formulário de contato no WordPress.
Hi, Thanks for this tutorial.
I’m trying to create a custom search form to place in the sidebar of my website’s blog section. I want the search form to only look within ONLY posts (standard blog posts, not a custom post type) – and to ignore any other content, eg.pages. Is it possible to adapt this method to suit what I’m trying to do?
I’ve had a go but with no luck.
Many thanks
Hey Sally,
Try this tutorial on how to filter post types from search results. Hope you’ll find it helpful 🙂
Purr purr purrrrfect )
Perfect. Thanks!
Sorry for the noob question, but is there a way to take a level further and to only search a custom meta_field within the custom post type? I’ve been searching for days and this is the closest script I could find. Right now it searches the titles and content of the post, but I’ve got a ton of custom fields for the CPT and only want to the user to search specific field. Thoughts?
is it possible to adapt these instructions to search a custom taxonomy instead of a custom post? Trying to return a separate search for each custom taxonomy and I’m not quite figuring it out. Thanks!