Como criar filtros com fonte do Query Builder
Criar consulta personalizada
Vá para WordPress Dashboard > JetEngine > Query Builder e crie uma nova consulta clicando no botão “ Adicionar Novo ”.
Escreva o nome da consulta personalizada e selecione o tipo de consulta necessário .
No exemplo fornecido, queremos exibir uma lista de categorias de produtos ordenadas por um nome de termo para substituir a ordem padrão por data de criação.
Isso significa que uma consulta personalizada pode ser usada se a ordem dos itens precisar ser alterada.
Portanto, é selecionado um tipo “Consulta de Termos”. Em seguida, a opção “Categorias de produtos” é escolhida como Taxonomia .
No campo Ordenar por , escolhemos a opção “Nome” e definimos a ordem crescente “Do menor para o maior valor” .
Neste ponto, a consulta pode ser salva para ser posteriormente utilizada no filtro. Para isso, pressione o botão “ Adicionar Consulta ”.
Antes de ir para as configurações de filtro, vamos verificar outro exemplo de uso da consulta personalizada do Query Builder como fonte de filtro.
Neste exemplo, mostraremos o processo de exibição da lista de usuários como opções de filtro para filtrar os Registros do Formulário . A ideia é selecionar um usuário no filtro e mostrar seus envios relativos no widget Listing Grid
. A configuração seria a seguinte: um formulário criado com o plugin JetFormBuilder coleta envios por meio da ação pós-envio Save Form Record .
O formulário também precisa de um campo Oculto que coleta o ID do usuário que envia o formulário. Com base neste campo será realizada a filtragem, por isso é necessária.
Portanto, selecionamos a opção “ID do usuário atual” como valor do campo .
A seguir, criamos uma consulta personalizada no Query Builder para gerar os registros do formulário necessário. O tipo de consulta “JetFormBuilder Records” deve ser selecionado adequadamente.
Na seção Consulta de registros do JetFormbuilder , deve ser selecionado o formulário do qual os envios precisam ser filtrados.
Depois disso, criamos um modelo de listagem para esta consulta personalizada acessando WordPress Dashboard > JetEngine > Listings e clicando no botão “ Adicionar novo ”.
Este modelo de listagem permite mostrar a lista de registros do formulário usando o widget Listing Grid .
Na seção Listing Settings , “Query Builder” deve ser selecionado como Listing Source . Em seguida, especificamos a consulta construída.
No modelo de listagem, você pode apresentar os valores dos campos que um usuário preencheu durante o envio da postagem.
O campo do registro do formulário que contém os dados enviados por meio de um formulário frontend é ‘jfb_fields’, como pode ser visto nos resultados de visualização da consulta personalizada.
Este campo inclui uma série de campos e seus valores que foram preenchidos no envio da postagem. Precisamos entender isso ao gerar os campos no modelo de listagem.
Portanto, para mostrar um valor de ‘text_field’ de um formulário, as seguintes configurações foram aplicadas ao widget Campo Dinâmico .
O campo do objeto personalizado/campo Meta/chave do repetidor está definido como ‘jfb_fields’.
Em seguida, ativamos uma alternância de saída do campo Filtro e aplicamos um retorno de chamada ‘Obter elemento filho do objeto/array’ para obter um campo ‘text_field’. Por favor, utilize-o como referência para mostrar outros campos do registro do formulário no modelo de listagem.
Então o modelo de listagem para registros de formulário pode ser considerado completo.
Novamente podemos passar para WordPress Dashboard > JetEngine > Query Builder para criar outra consulta personalizada que lista os usuários em um filtro.
Respectivamente, um tipo de consulta “Consulta de usuários” deve ser escolhido.
Neste exemplo, queremos mostrar apenas os usuários com a função de usuário “Editor”, especificada na configuração Função da guia Função do usuário .
Se não houver necessidade de adicionar outras cláusulas de consulta, salvemos a consulta e criemos um filtro.
Criar filtro com fonte do Query Builder
Vá para Painel do WordPress > JetSmartFilters > Adicionar novo .
Primeiramente criaremos um filtro para uma Consulta de Termos que foi feita no início deste tutorial.
Selecione um tipo de filtro : “Rádio”, “Caixa de seleção” ou “Selecionar”. Na fonte de dados , você pode ver uma fonte “JetEngine Query Builder”, da qual precisamos.
” alt=”fonte de dados de filtro do construtor de consultas jetengine” data-src=”https://crocoblock.com/knowledge-base/wp-content/uploads/2023/05/jetengine-query-builder-filter-data-source-2x.png” />Após adicionar a fonte, três novos campos aparecem.
No campo Selecionar Consulta , uma consulta personalizada do Query Builder deve ser escolhida a partir da qual as opções de filtro serão preenchidas.
No caso descrito, é adicionada uma consulta de Termos criada anteriormente com a ordem dos termos.
A Propriedade da qual obter Valor define a propriedade com base na qual a filtragem é executada.
De acordo com a consulta utilizada, o ID do termo é o valor. Você pode voltar para a consulta personalizada no Query Builder para ver como a propriedade ID do termo é nomeada.
A propriedade da qual obter o rótulo é o que o usuário vê no front-end como o rótulo de uma opção. Conforme o caso descrito, o campo que contém o nome do termo é ‘nome’.
Por último, a variável de consulta deve conter a taxonomia pela qual filtrar.
Pode ser selecionado pressionando o botão “ Tag Dinâmico ” próximo ao campo. Em seguida, clique em “ Taxonomia ” e escolha a opção “ Categorias de produtos ”.
Agora, o filtro pode ser salvo.
E vamos completar o conhecimento do Query Builder como fonte de filtro criando um filtro baseado na consulta personalizada para os usuários.
Crie outro filtro. Que seja do Tipo “Rádio” . A fonte de dados é “JetEngine Query Builder”. O campo Selecionar consulta representa a consulta do usuário criada anteriormente neste tutorial.
A propriedade da qual obter o valor é o id de um usuário, que, de acordo com a visualização da consulta personalizada, é denominado “ID”.
A propriedade da qual obter o rótulo é “display_name”.
A configuração do filtro está concluída, então podemos prosseguir para a próxima etapa.
Adicionar filtro à página ou modelo
Vamos ver o filtro em ação. Abra uma página ou modelo em um editor de sua preferência.
Adicione um widget Filtro de caixas de seleção à área de edição. Se você criou anteriormente um tipo de filtro Select ou Radio , adicione o widget de acordo.
Também adicionamos um widget Listing Grid e o selecionamos como um provedor de filtro escolhendo a opção “JetEngine” no campo Este filtro para das configurações do filtro de caixas de seleção .
É hora de verificar o resultado no front-end.
As opções estão ordenadas em ordem alfabética. O filtro funciona e os produtos são filtrados de acordo com a categoria de produto selecionada.
Para entender a diferença com e sem o Query Builder como fonte, aqui está o filtro baseado diretamente na Taxonomia de “Categorias de Produtos” . O pedido personalizado não é mais preservado.
Aqui está um Filtro de Rádio baseado na Consulta do Usuário que filtra a Listagem de Registros do Formulário .
Certifique-se de adicionar um ID de consulta ao widget de filtro.
Além disso, especifique o ID no widget Listing Grid no campo CSS ID da guia Configurações avançadas . Deve ser igual ao campo Query ID da consulta personalizada para registros de formulário.
Confira o resultado final no front-end.
Os registros do formulário são filtrados pelos usuários que os enviaram.
Além disso, os dados são exibidos corretamente no widget Listing Grid .
Isso é tudo; agora você sabe como criar filtros com o Query Builder como fonte usando JetEngine e JetSmartFilters em seu site WordPress.