Fala pessoal, tudo certo?
Estou aqui, aproveitando o feriado para agilizar alguns projetos e também dar uma estudada supimpa na API do WordPress e em outras ferramentas, e hoje venho postar aqui algo bem útil!
Se tratando de buscas dentro do site, por default o WP sempre realizará as buscas no post_type: ‘post’, pois é onde a ferramenta supõe que está o conteúdo do projeto, mas pra quem trabalha com este CMS no estilo “hardcore” sabe que dá pra fazer muito, MUITO, MUITO MESMO mais além do que isto.
Sendo assim, vamos criar um cenário diferente!
Imagine que você está desenvolvendo um projeto que disponibilizará informações de venda de helicópteros, e você criou um novo custom post_type, sendo ele: helicoptero. (sem acentos mesmo, simulando a string do custom post_type)
E obviamente, seu cliente no briefing especificou que ao usuário final escrever: Robinson R44 na busca do site ele deverá buscar um helicóptero!
Nativamente o WP realizaria esta busca apenas nas postagens (post_type padrão do WP: post), e como seu projeto está desenvolvido com post type customizado, seu cliente ao digitar “Robinson R44” estaria literalmente a ver navios (haha, não dava pra perder esta!) mas o que ele deseja é ver helicópteros!
E então, qual seria uma solução eficaz para isto?
Simples, criaremos um filtro, ou seja, estrutura que altera o mecanismo padrão do WP para algo as nossas necessidades, e este, que irá inserir novos parâmetros na busca do WordPress.
1 2 3 4 5 6 7 8 9 10 11 | function customFilter_blog_vilourenco($query) { // Verificação se a query é a relacionada a busca de termos dentro do site. if ($query->is_search) { // Aqui vão os filtros. $query->set('post_type', 'post'); // Para continuar capturando normalmente dentro de algum post. $query->set('post_type', 'helicoptero'); // Para buscar os termos digitados no post type customizado! } return $query; } // Chamada do filtro associado a sua action add_filter('pre_get_posts', 'customFilter_blog_vilourenco'); |
O método set() utiliza como parâmetro a definição do que se deseja atrelar, e o nome, veja que no exemplo acima utilizamos apenas post_type, e em seguida o nome de cada um.
Este código deverá ser inserido no arquivo functions.php do seu tema em uso!
Simples pessoal, a partir de agora a busca do seu site estará apta a buscar também os termos relacionados a qualquer conteúdo de helicópteros, dentro do seu post type customizado!
É isso pessoal, compartilhar é multiplicar, espero que isto seja de grande ajuda a vocês!
Qualquer dúvida basta comentar abaixo ou entrar em contato direto comigo!
Grande abraço!