Blog SearchWP

Tutoriais, Dicas e Recursos do WordPress para Ajudar a Crescer Seu Negócio

Como Criar uma Busca Personalizada no WordPress Sem um Plugin

Desvantagens de Criar uma Busca Personalizada Sem um Plugin

Ao personalizar a busca em seu site, você pode aumentar o número de visualizações de página, impulsionar suas vendas e ajudar seus visitantes a encontrar o que procuravam mais rapidamente.

Neste artigo, falaremos sobre como você pode personalizar a busca em seu site sem instalar um plugin e por que você ainda deve considerar o uso de um plugin para fazer isso.

Vamos começar!

Por que a Busca Personalizada é Importante para o Seu Site WordPress?

Para começar, vamos falar sobre como uma busca personalizada em seu site pode ajudá-lo a crescer seu negócio.

Personalizar a busca em seu site permite que você:

  • Entregue resultados de busca mais relevantes. Limite sua busca a categorias específicas para refinar seus resultados de busca e ajudar os visitantes a encontrar o que procuram mais rapidamente.
  • Obtenha mais visualizações de página e vendas. Aumente a descoberta de seu conteúdo e sua renda promovendo posts ou produtos específicos em seus resultados de busca.
  • Construa uma audiência leal. Visitantes que tiveram uma experiência de busca positiva em seu site são mais propensos a retornar para explorar mais de seu conteúdo.
  • Gere mais tráfego dos motores de busca. Ao ajudar os visitantes a encontrar o conteúdo certo mais rapidamente, você os faz permanecer em seu site por mais tempo, o que é um dos principais fatores de classificação no Google.

Depois de entendermos os benefícios que a busca personalizada pode trazer para o seu negócio, vamos falar sobre as desvantagens que você pode esperar se fizer isso sem um plugin.

Drawbacks of Creating Custom Search Without A Plugin

Você deve considerar algumas desvantagens importantes se quiser criar uma busca personalizada em seu site sem um plugin.

1. Requer Habilidades de Codificação e Conhecimento Profundo de WordPress

A principal desvantagem de personalizar a busca do seu site manualmente é que ela requer experiência extensiva em codificação e conhecimento profundo de WordPress.

O fato é que não há ferramentas de configuração de busca padrão no WordPress.

Devido a isso, a única maneira de personalizar sua busca é modificar os arquivos principais do WordPress e o código do seu tema.

É inconveniente, demorado e inadequado para pessoas não experientes em tecnologia.

Além disso, se você fizer algo errado, isso pode levar à falha do seu site, então você deve ter muito cuidado ao personalizar os arquivos do seu tema.

2. Você Terá Menos Recursos

Além disso, mesmo que você tenha habilidades extensivas de codificação, o número de recursos de busca personalizada que você pode adicionar sem um plugin é limitado.

Por exemplo, você não pode adicionar múltiplos motores de busca com um conjunto exclusivo de regras, excluir páginas ou categorias específicas da busca, gerenciar a ordem dos seus resultados de busca e muito mais.

Portanto, se é crucial para você ter controle total sobre como a busca funciona em seu site, você deve considerar o uso de um poderoso plugin de busca para WordPress.

3. Você Pode Perder Suas Alterações

Finalmente, como personalizar a busca sem um plugin requer fazer edições nos arquivos do seu site, você perderá todas as alterações feitas ao atualizar seu tema ou versão do WordPress.

A melhor maneira de evitar tais situações é usar um plugin de busca para WordPress, pois ele mantém suas configurações, independentemente do que você faça em seu site.

Com isso, vamos dar uma olhada em como você pode personalizar a busca em seu site em poucos cliques, sem necessidade de codificação e independentemente de suas habilidades técnicas.

O Método Mais Fácil para Personalizar a Busca do WordPress em Seu Site

A maneira mais fácil de personalizar uma busca em seu site WordPress é usar um plugin como o SearchWP.

SearchWP

SearchWP é o plugin de busca para WordPress mais bem avaliado, confiável por mais de 50.000 proprietários de sites.

Sua interface amigável e recursos poderosos permitem que você personalize completamente sua busca, mesmo que esteja lançando seu primeiro site.

Por exemplo, com o SearchWP, você pode gerenciar onde o WordPress deve procurar por correspondências, limitar a busca a um tipo específico de conteúdo, ativar a busca por tags e campos personalizados, e muito mais.

O melhor é que você pode fazer a maioria dessas coisas em apenas alguns cliques.

Você também pode usar o SearchWP para:

Depois de aprender por que o SearchWP é o melhor plugin de busca para WordPress, vamos ver como você pode usá-lo para personalizar a busca em seu site de acordo com suas necessidades.

Etapa 1: Instalar e Ativar o SearchWP

O primeiro passo é ir ao site do SearchWP e garantir sua cópia do SearchWP.

Feito isso, basta ir ao painel da sua conta SearchWP e clicar em Downloads.

Baixar plugin SearchWP da área da conta

Em seguida, você pode pressionar o botão Download SearchWP e salvar o plugin em seu computador.

Após o download, também sugerimos copiar sua chave de licença do SearchWP no canto inferior esquerdo.

Em seguida, você precisará instalar o SearchWP em seu site. Se precisar de ajuda, pode seguir nosso guia detalhado sobre instalação de um plugin WordPress.

Depois disso, você verá a tela de boas-vindas do SearchWP e o assistente de configuração. Prossiga e clique no botão ‘Iniciar Assistente de Integração’ e siga as instruções na tela.

Assistente de integração SearchWP

Passo 2: Comece a Personalizar Sua Busca

Em seguida, você pode adicionar, remover e personalizar mecanismos de busca no SearchWP. Pense neles como um conjunto de regras que serão seguidas ao realizar uma busca em seu site.

Ao personalizar o mecanismo, você pode gerenciar a lista de suas fontes de busca, fazer com que ele considere novos atributos de conteúdo, limitar a busca a categorias específicas e muito mais.

Com o SearchWP, você pode adicionar um número ilimitado de mecanismos de busca e conectá-los a formulários de busca individuais em seu site.

Graças a isso, você pode criar rapidamente formulários de busca personalizados para várias necessidades de negócios e colocá-los onde quiser em seu site.

Como neste tutorial queremos personalizar como a pesquisa funciona em todo o site, editaremos o mecanismo de pesquisa Padrão.

Primeiro, vamos especificar onde o WordPress pesquisará conteúdo configurando sua lista de fontes de pesquisa.

Gerencie Suas Fontes de Pesquisa

Para começar, acesse SearchWP » Algoritmo no seu painel do WordPress. 

A partir daqui, você pode pressionar o botão Fontes e Configurações.

Editar ou adicionar novos mecanismos de pesquisa no WordPress

Aqui você pode gerenciar quais fontes incluir no processo de pesquisa.

Por padrão, ele pesquisa entre Posts, Páginas e Arquivos de Mídia.

Escolher fontes de pesquisa

Para remover uma fonte de pesquisa, você pode desmarcar uma caixa ao lado dela. Por exemplo, vamos limitar a pesquisa em nosso site apenas a posts.

Para fazer isso, desmarcaremos todas as outras fontes, exceto Posts e, em seguida, clicaremos em Concluído para salvar as alterações.

Selecionar posts como única fonte

Depois de configurar nossa lista de fontes de pesquisa, vamos também aprimorar nossa pesquisa fazendo com que o WordPress considere atributos de post e taxonomias.

Configure Seus Atributos de Pesquisa

Para começar, você pode clicar no botão Adicionar/Remover Atributos na seção de pesquisa de Posts.

Adicionar atributo para post

Na próxima janela, você pode especificar atributos como campos personalizados e taxonomias que você deseja que o SearchWP considere ao realizar uma pesquisa.

Por padrão, ele incluirá título, conteúdo, slug, resumo e autor como atributos.

Atributos da postagem

Para tornar um campo personalizado específico pesquisável, você pode clicar no campo Campos Personalizados e inserir seu nome.

Da mesma forma, você também pode incluir taxonomias como tags e categorias para a fonte.

Para tornar uma nova taxonomia pesquisável, clique no campo Taxonomias e selecione a taxonomia desejada.

Por exemplo, vamos fazer com que o WordPress considere as tags de post ao realizar uma pesquisa. Para fazer isso, escolha a opção Tags no menu suspenso.

Selecionar tags de post

Depois de terminar de gerenciar os atributos da fonte de Posts, pressione Concluído para salvar as alterações.

Agora, vamos ver como você pode refinar sua pesquisa para dar aos seus visitantes resultados mais relevantes.

Limite a Pesquisa a uma Categoria de Post Específica

Para começar, prossiga e pressione o botão Editar Regras para sua fonte.

Editar regras para resultados de pesquisa

Uma nova janela agora aparecerá.

Simplesmente clique no botão Adicionar Regra.

Adicionar nova regra de pesquisa

Aqui você pode adicionar regras pelas quais o WordPress filtrará o conteúdo nos resultados da pesquisa.

Por exemplo, você pode adicionar uma regra para excluir categorias específicas de sua pesquisa ou limitá-la a elas.

Vamos supor que queremos limitar a pesquisa em nosso site de teste à categoria Notícias.

Para fazer isso, primeiro certifique-se de escolher a opção Excluir entradas se: e, em seguida, escolha a taxonomia Categorias.

A partir daqui, você pode inserir o nome de uma categoria à qual deseja limitar sua pesquisa no campo mais à direita. No nosso caso, será Notícias.

Configurar regras de exclusão

Depois de terminar de personalizar as regras do seu mecanismo de pesquisa, clique em Concluído para salvar suas alterações.

Quando estiver satisfeito com a forma como personalizou sua pesquisa, estará pronto para passar para a etapa final e salvar seu mecanismo de pesquisa.

Salve seu mecanismo de pesquisa

Para fazer isso, clique no botão Salvar no canto superior direito do seu painel do SearchWP.

Salvar configurações do motor

É isso. Você personalizou completamente a pesquisa às suas necessidades sem escrever uma única linha de código.

Vamos testar sua nova pesquisa para garantir que ela funcione de acordo com suas personalizações.

Etapa 3: Teste sua nova pesquisa

Para começar, acesse seu site e realize uma pesquisa de teste.

Por exemplo, como tornamos as tags de postagem pesquisáveis, vamos tentar encontrar uma postagem apenas por suas tags.

Em nosso site de teste, temos uma postagem chamada “Novos Recursos do WordPress”, que tem a tag “Atualizações”.

Vamos pesquisar por esta tag e ver se conseguimos encontrar nossa postagem.

pressione Encontrar Resultados

Encontramos a postagem, mesmo que não haja a palavra “atualizações” em seu título, resumo ou conteúdo.

Isso significa que nosso mecanismo de pesquisa agora considera as tags de postagem ao procurar correspondências.

encontramos o post

Vamos também garantir que a pesquisa em nosso site agora esteja limitada à categoria “Notícias”.

Para fazer isso, pesquisaremos por “WordPress”, pois temos muitas postagens relacionadas ao WordPress em outras categorias.

fazer outra pesquisa

Você pode ver que apenas as postagens da categoria Notícias são exibidas nos resultados da pesquisa que obtivemos.

Isso significa que a regra que adicionamos ao nosso mecanismo de pesquisa, que diz que o WordPress deve pesquisar apenas entre as notícias, funciona como deveria.

encontramos as postagens certas

Portanto, você acabou de aprender a maneira mais fácil de personalizar sua pesquisa. Agora, vamos ver como você pode fazer isso sem usar um plugin.

Crie uma Pesquisa Personalizada no WordPress Sem um Plugin

Para personalizar sua pesquisa sem um plugin, você precisará fazer edições em seu tema.

A maneira mais segura de fazer isso é criar um tema filho do tema atual que você está usando em seu site.

Dessa forma, quando você fizer alterações em um tema filho, seu tema pai permanecerá intocado, permitindo que você o alterne rapidamente em caso de erros críticos.

Além disso, ter um tema filho permite que você atualize seu tema pai sem perder suas alterações. Para mais detalhes sobre como criar um tema filho, confira este tutorial sobre como criar um tema filho.

Dica Profissional: Você também pode usar um plugin de backup do WordPress para garantir que você tenha uma cópia recente do seu site pronta para restaurar caso algo dê errado.

Após criar e ativar um tema filho, você estará pronto para começar a personalizar sua pesquisa.

Para começar, navegue até Aparência » Editor de Arquivos do Tema no seu painel do WordPress. Em seguida, encontre o arquivo functions.php no painel direito e clique nele.

Se você não se sentir confortável editando os arquivos do tema, sugerimos usar o WPCode. Ele ajuda você a inserir códigos personalizados em seu site sem o risco de quebrá-lo. Você pode consultar este guia sobre como copiar e colar trechos de código da web no WordPress.

Abra o arquivo functions.php

Depois disso, siga as instruções abaixo, dependendo de quais personalizações você deseja fazer na pesquisa em seu site.

Ativar Pesquisa de Posts por Tags e Categorias

Para tornar as tags e categorias de posts pesquisáveis em seu site sem um plugin, você precisará adicionar o seguinte código ao arquivo functions.php do seu tema.

<pre class="wp-block-syntaxhighlighter-code">
/*
 * ----------------------------------------------------------
 *
 * Search Posts by Tags and Categories
 *
 * ----------------------------------------------------------
 */

/**
 * Join the terms, term_relationship, and term_taxonomy tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_posts_join( $join, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}

	$join .= &amp;amp;amp;quot;
    LEFT JOIN
    (
        {$wpdb-&amp;amp;amp;gt;term_relationships}
        INNER JOIN
            {$wpdb-&amp;amp;amp;gt;term_taxonomy} ON {$wpdb-&amp;amp;amp;gt;term_taxonomy}.term_taxonomy_id = {$wpdb-&amp;amp;amp;gt;term_relationships}.term_taxonomy_id
        INNER JOIN
            {$wpdb-&amp;amp;amp;gt;terms} ON {$wpdb-&amp;amp;amp;gt;terms}.term_id = {$wpdb-&amp;amp;amp;gt;term_taxonomy}.term_id
    )
    ON {$wpdb-&amp;amp;amp;gt;posts}.ID = {$wpdb-&amp;amp;amp;gt;term_relationships}.object_id &amp;amp;amp;quot;;

	return $join;
}

add_filter( 'posts_join', 'search_custom_posts_join', 10, 2 );

/**
 * Modify the WHERE clause to include searches against taxonomies.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_posts_where( $where, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}

	// Get additional where clause for the user.
	$user_where = '';

	$user_id = get_current_user_id();
	$status  = array( &amp;amp;amp;quot;'publish'&amp;amp;amp;quot; );

	// Include private posts if the user is logged in.
	if ( $user_id ) {
		$status&#x5B;]    = &amp;amp;amp;quot;'private'&amp;amp;amp;quot;;
		$user_where .= &amp;amp;amp;quot; AND {$wpdb-&amp;amp;amp;gt;posts}.post_author = {$user_id}&amp;amp;amp;quot;;
	}

	$user_where .= &amp;amp;amp;quot; AND {$wpdb-&amp;amp;amp;gt;posts}.post_status IN( &amp;amp;amp;quot; . implode( ',', $status ) . &amp;amp;amp;quot; ) &amp;amp;amp;quot;;

	$where .= &amp;amp;amp;quot; OR (
                    {$wpdb-&amp;amp;amp;gt;term_taxonomy}.taxonomy IN( 'category', 'post_tag' )
                    AND
                    {$wpdb-&amp;amp;amp;gt;terms}.name LIKE '%&amp;amp;amp;quot; . esc_sql( get_query_var( 's' ) ) . &amp;amp;amp;quot;%'
                    {$user_where}
                )&amp;amp;amp;quot;;

	return $where;
}

add_filter( 'posts_where', 'search_custom_posts_where', 10, 2 );

/**
 * Set the GROUP BY clause to post IDs.
 *
 * @global $wpdb
 *
 * @param string   $groupby The GROUPBY clause.
 * @param WP_Query $query   The current WP_Query instance.
 *
 * @return string The GROUPBY clause.
 */
function search_custom_posts_groupby( $groupby, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $groupby;
	}

	return &amp;amp;amp;quot;{$wpdb-&amp;amp;amp;gt;posts}.ID&amp;amp;amp;quot;;
}

add_filter( 'posts_groupby', 'search_custom_posts_groupby', 10, 2 );
</pre>




Quando terminar, pressione o botão Atualizar Arquivo para salvar suas alterações.

pressione Concluído

Agora os visitantes do seu site podem pesquisar posts por tags e categorias.

Habilitar Pesquisa por Conteúdo de Comentários e Nomes de Autores

Para tornar comentários e nomes de autores pesquisáveis em seu site sem um plugin, adicione o seguinte código ao arquivo functions.php do seu tema:

/*
 * ----------------------------------------------------------
 *
 * Search by Comment Content and Author Names
 *
 * ----------------------------------------------------------
 */

/**
 * Joins the comments and posts tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_comments_posts_join( $join, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}

	$join .= ' LEFT JOIN ' . $wpdb-&amp;amp;amp;gt;comments . ' ON ' . $wpdb-&amp;amp;amp;gt;posts . '.ID = ' . $wpdb-&amp;amp;amp;gt;comments . '.comment_post_ID ';

	return $join;
}

add_filter( 'posts_join', 'search_custom_comments_posts_join', 10, 2 );

/**
 * Modify the WHERE clause to include searches against comments.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_comments_posts_where( $where, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}

	$where = preg_replace(
		&amp;amp;amp;quot;/\(\s*&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title\s+LIKE\s*(\'[^\']+\')\s*\)/&amp;amp;amp;quot;,
		&amp;amp;amp;quot;(&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title LIKE $1) OR (&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;comments . &amp;amp;amp;quot;.comment_author LIKE $1) OR (&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;comments . &amp;amp;amp;quot;.comment_content LIKE $1)&amp;amp;amp;quot;,
		$where
	);

	return $where;
}

add_filter( 'posts_where', 'search_custom_comments_posts_where', 10, 2 );

/**
 * Prevent search results duplicates.
 *
 * @param string   $distinct The DISTINCT clause.
 * @param WP_Query $query    The current WP_Query instance.
 *
 * @return string The DISTINCT clause.
 */
function search_custom_comments_posts_distinct( $distinct, $query ) {

	if ( ! is_main_query() || ! is_search() ) {
		return $distinct;
	}

	return 'DISTINCT';
}

add_filter( 'posts_distinct', 'search_custom_comments_posts_distinct', 10, 2 );

Quando terminar, clique no botão Atualizar Arquivo na parte inferior do editor para salvar suas alterações.

clique em Concluído

Agora seus visitantes podem pesquisar por conteúdo de comentários e nomes de autores.

Habilitar Pesquisa por Campos Personalizados de Posts

Para tornar campos personalizados pesquisáveis em seu site sem um plugin, adicione o seguinte código ao arquivo functions.php do seu tema:

<pre class="wp-block-syntaxhighlighter-code">
/*
 * ----------------------------------------------------------
 *
 * Search by Post Custom Fields
 *
 * ----------------------------------------------------------
 */

/**
 * Joins the postmeta and posts tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_meta_posts_join( $join, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}

	$join .=' LEFT JOIN '.$wpdb-&amp;amp;amp;gt;postmeta. ' ON '. $wpdb-&amp;amp;amp;gt;posts . '.ID = ' . $wpdb-&amp;amp;amp;gt;postmeta . '.post_id ';

	return $join;
}

add_filter( 'posts_join', 'search_custom_meta_posts_join', 10, 2 );

/**
 * Modify the WHERE clause to include searches against postmeta.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_meta_posts_where( $where ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}

	$where = preg_replace(
		&amp;amp;amp;quot;/\(\s*&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title\s+LIKE\s*(\'&#x5B;^\']+\')\s*\)/&amp;amp;amp;quot;,
		&amp;amp;amp;quot;(&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title LIKE $1) OR (&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;postmeta . &amp;amp;amp;quot;.meta_value LIKE $1)&amp;amp;amp;quot;, $where );

	return $where;
}

add_filter( 'posts_where', 'search_custom_meta_posts_where', 10, 2 );

/**
 * Prevent search results duplicates.
 *
 * @param string   $distinct The DISTINCT clause.
 * @param WP_Query $query    The current WP_Query instance.
 *
 * @return string The DISTINCT clause.
 */
function search_custom_meta_posts_distinct( $distinct, $query ) {

	if ( ! is_main_query() || ! is_search() ) {
		return $distinct;
	}

	return 'DISTINCT';
}

add_filter( 'posts_distinct', 'search_custom_meta_posts_distinct', 10, 2 );
</pre>




Assim que terminar, pressione o botão Atualizar Arquivo na parte inferior do editor para salvar suas alterações.

pressione Concluído

Agora seus visitantes podem pesquisar posts por campos personalizados.

Esperamos que este artigo tenha ajudado você a aprender como criar uma pesquisa personalizada em seu site sem um plugin. Você também pode consultar nosso guia sobre como criar um tema WordPress personalizado e como personalizar sua página de resultados de pesquisa do WordPress.

Pronto para personalizar a pesquisa em seu site em poucos cliques? Você pode começar com o SearchWP aqui.

avatar do autor
Aazim Akhtar

Crie uma Experiência de Pesquisa WordPress Melhor Hoje

Nunca mais perca visitantes para resultados de pesquisa inúteis. O SearchWP torna a criação de sua própria pesquisa inteligente do WordPress rápida e fácil.

Get SearchWP Now
Ícone de Múltiplos Mecanismos de Busca