Como criar um limite de pesquisa para alguns formatos de post no WordPress

Vários blogs construídos em WordPress utilizam um recurso chamado post formats. O recurso foi lançado a partir da versão 3.1 e foi baseado no Tumblr.

Os formatos de posts podem ser classificados como:

  • Aside – um simples post, sem título, como o Facebook
  • Gallery – uma galeria ou um álbuns de fotos
  • Link – apenas um texto linkando para uma URL
  • Image – apenas uma imagem
  • Quote – uma citação, pode ser explicada com o uso do <blockquote>
  • Status – um estilo de update parecido com o Twitter, mas sem levar a frase \”What\’s happening?\” à śerio.
  • Audio – uma música
  • Video – um vídeo
  • Chat – uma conversa

Mais informações do post formats aqui.

Mas o foco principal do post não é esse e sim como criar um limite na pesquisa pra certos formatos de posts. Por exemplo: digamos que eu possua dois formatos cadastrados (sim, eles são cadastrados) em meu WordPress: o padrão (texto) e galeria (gallery) e eu queira que mostre apenas o resultados do formato texto, independentemente se os termos pesquisados entram nos valores do formato galeria.

Ou seja, se eu pesquisar por \”wordpress\” e este termo tiver tanto em texto, tanto em galeria, será mostrado apenas o que está no formato texto.

Para adaptar o seu site/blog com este recurso, siga os procedimentos:

1. Acesse seu painel administrativo.
2. Na barra lateral, vá em \”Aparência\” > \”Editor\”.
3. Na listagem de arquivos, selecione o arquivo functions.php, caso seu tema não possua um arquivo de funções, basta criar um, nomeá-lo como \”functions.php\” (sem aspas) e colocá-lo na pasta de seu tema.

Após abrir a primeira tag do PHP (<?php), cole o seguinte código:

function filtropesquisa($query) {
if ($query->is_search) {
$query->set(\'post_type\',array(\'post\',\'page\'));
}
return $query;
}
add_filter(\'pre_get_posts\',\'filtropesquisa\');

Observe que a terceira linha é formada por este trecho:

$query->set(\'post_type\',array(\'post\',\'page\'));

\'post\',\'page\' são os formatos que serão mostrados na pesquisa, os demais não.

Se quiser adicionar, por exemplo, a galeria ao filtro de pesquisa, o trecho ficará assim:

$query->set(\'post_type\',array(\'post\',\'page\',\'gallery\'));

Salve as configurações.
É isso. Se não der certo, poste um comentário que ajudarei.