jnz93 / a2-management

GNU General Public License v2.0
0 stars 0 forks source link

Sistema de busca e Página de resultado #15

Open jnz93 opened 2 years ago

jnz93 commented 2 years ago

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:

jnz93 commented 2 years ago

Shortcode [buscaCidade]

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.

Modelo do componente

image

image

jnz93 commented 2 years ago

Shortcode [filtroCidade]

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.

Modelo do componente - padrão

image

Modelo do componente - completo

image

jnz93 commented 2 years ago

Desenvolvimento [buscaCidade]

jnz93 commented 2 years ago

Sistema de buscas e filtragem

Estrutura de Dados

A estrutura de dados vai servir como referência para o registro das custom vars e na construção do algoritmo de buscas.

Registrando as variáveis de consulta

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.

Manipulando a Consulta

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.

jnz93 commented 2 years ago

API Cidades

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);
    }
  })