Open jnz93 opened 2 years ago
Esse shortcode não faz exatamente uma busca no sistema, mas ele da "match" entre cidade selecionada pelo usuário com a página/post da cidade.
Por exemplo: Se o usuário selecionar a cidade de Curitiba o sistema vai direcionar ele para a página
site/acompanhantes-em-curitiba-pr
;
O componente de busca deve ser simples e fácil de usar, contendo apenas o título, uma breve descrição e o campo de texto. Ao digitar algumas letras o sistema deve sugerir opções que complementam a palavra digitada.
Ao clicar/selecionar a cidade o usuário deve ser instantaneamente direcionada para página de destino.
Inicialmente será utilizado apenas em páginas de resultados de cidades. Ele recebe alguns parâmetros de busca e retorna os resultados na página.
Para coletar todas as cidades vamos fazer um algoritmo que vai percorrer a taxonomia
profile_localization
retornando a lista de cidades.
No futuro devemos Utilizar o algoritmo de Levenshtein para isso. Atualmente é um algoritmo simples de comparação de strings.
Podemos utilizar o método que retorna as cidades a partir dessa lista executamos uma função para criar posts/páginas com os shortcodes de stories, filtros e anúncios pagos já inseridos.
A estrutura de dados vai servir como referência para o registro das custom vars
e na construção do algoritmo
de buscas.
profile_ethnicity
Etnia(branco, negro, oriental, indígena, etc...)profile_sign
Signo(Áries, câncer, capricórnio, etc..)profile_specialties
Especialidades(fetichismo, massagem, brinquedos eróticos, etc..)profile_services
Serviços(Acompanhante, dominação, sexo, etc..)profile_place_of_service
Local de atendimento(A domicílio, escritórios, festas, etc..)profile_languages
Idiomas(Espanhol, inglês, português, etc..)profile_work_days
Dias de trabalho(segunda, terça, quarta, etc...)profile_payment_methods
Pagamento(cartão, dinheiro, pix, etc..)profile_preference
Preferências(homem, mulher, trans, etc..)_profile_birthday
Idade(Selecionar um range de idade para filtrar os resultados)_profile_cache_hour
Cachê/h(Selecionar um range de valor/h para filtrar os resultados)Query vars são pares key=value
seguindo um ponto de interrogação em uma URL. Mas antes que possamos lidar com esses pares em nossos scripts, temos que registrá-los.
query_vars
_profile_birthday
Idade(Selecionar um range de idade para filtrar os resultados)_profile_cache_hour
Cachê/h(Selecionar um range de valor/h para filtrar os resultados)Agora vamos adicionar um bloco de código ao nosso script que vai manipular a ação pre_get_posts
. A função de retorno chamada é encerrada se o usuário estiver no painel de administração, se a consulta atual não for a consulta principal e se o tipo de postagem não for a2_advertisement
.
A função também deve verificar se alguma das variáveis de consulta que registramos anteriormente está disponível. Fazemos isso graças à função get_query_vars
, que recupera uma variável de consulta pública de uma solicitação HTTP. Se a variável $meta_query
existir, o retorno de chamada definirá uma matriz para cada meta consulta e a enviará para a matriz multidimensional.
Por fim, se pelo menos duas meta consultas estiverem disponíveis, o argumento relation
será inserido em $meta_query
e seu valor será definido como AND
. Uma vez feito, o método set
salva $query para sua execução subsequente.
Utilizar a Api do IBGE para coletar o nome de estados, regiões, estados, cidades e bairros para utilizar nas buscas e, ou, cadastrar como localizações.
Ex de código:
fetch("https://servicodados.ibge.gov.br/api/v1/localidades/estados/PR/municipios", {
method: "GET",
credentials: 'same-origin',
})
.then((response) => response.json())
.then((data) => {
if (data) {
console.log(data);
}
})
A busca é a porta de entrada do site. É a partir dela que os usuários serão direcionados para as páginas de resultados das cidades
(site/sao-paulo-sp)
. Aliás, esse é o principal funil para os anúncios, pois são nessas páginas que os anúncios são apresentados por nível.Então, inicialmente, teremos 2 shortcodes: