Como usar Query Builder para mostrar resultados de mais de uma consulta em apenas uma Listing Grid.

Adicione um metacampo à metacaixa usada na consulta

Antes de começar, certifique-se de criar uma Meta Box para usuários na guia JetEngine > Meta Boxes . Mais detalhes podem ser encontrados no tutorial Como aplicar Meta Boxes aos usuários .

Vamos adicionar o metacampo Switcher ao Meta Box para consultar os usuários por este campo posteriormente. Salve as alterações clicando no botão “Atualizar Meta Box” depois. 

metacampo switcher na metacaixa do usuário

Além disso, certifique-se de ir para a guia Usuários no painel de administração, habilitar o Switcher para os usuários necessários na página de edição do usuário e salvá- lo.

habilite o switcher na página de edição do usuário

Crie uma consulta personalizada com um conjunto de cláusulas de consulta

Em seguida, precisamos ir para JetEngine > Query Builder e clicar no botão “Adicionar Novo” . 

Digite o Nome . O tipo de consulta deve ser “Consulta de usuários”, pois o metacampo Switcher foi criado para usuários.

criação de consulta personalizada do usuário

Em seguida, abra a guia Meta Query e pressione o botão “Adicionar novo” para adicionar uma cláusula Meta Query . 

Insira a chave/nome do campo switcher , selecione a opção “Equal (=)” no campo Comparar , insira o valor “true” e escolha o tipo “Char” . 

O Switcher tem um valor “verdadeiro” quando habilitado e um valor “falso” quando desabilitado. Esta cláusula significa que os usuários com switcher habilitado são puxados.

cláusula de meta consulta para puxar usuários com switcher habilitado

Agora, você pode clicar no botão “Adicionar consulta” para salvar esta consulta personalizada.

Crie uma consulta personalizada com outro conjunto de cláusulas de consulta

A próxima consulta personalizada é para extrair usuários com o estado desabilitado do metacampo Switcher . Você pode copiar a consulta personalizada criada na etapa anterior e adicionar as alterações necessárias à consulta duplicada.

copie a consulta personalizada

Renomeamos a nova consulta personalizada, acessamos a guia Meta Query e editamos o valor da cláusula Meta Query do Switcher para “false”. Depois disso, a consulta personalizada pode ser salva.

defina o valor falso para a cláusula de meta consulta

Crie uma consulta SQL para combinar duas consultas personalizadas

A próxima consulta personalizada combinará as duas consultas anteriores. Crie uma nova consulta, nomeie -a e selecione o tipo “Consulta SQL/AI” . Em seguida, ative a alternância do modo Avançado/AI .

Tipo de consulta SQL/AI

No campo Consulta SQL , adicione o snippet SQL fornecido abaixo. Esta consulta SQL combina itens de duas outras consultas. Dessa forma, os usuários com o Switcher habilitado são exibidos primeiro e os usuários com o Switcher desabilitado são mostrados em segundo lugar.

SELECT ID

FROM {prefix}users

WHERE ID IN (

%query_results|135%{"fallback":"'999999999'"},

%query_results|136%{"fallback":"999999999"}

)
ORDER BY FIELD( 
   ID,
 %query_results|135%{"fallback":"'999999999'"},
 
 %query_results|136%{"fallback":"999999999"}
)
Aviso

Observe que “135” e “136” são IDs das consultas personalizadas das quais os resultados são extraídos. Esses números precisam ser substituídos pelos IDs das consultas personalizadas do seu site.

Fragmento SQL na consulta SQL

O ID da consulta personalizada pode ser encontrado no URL da página Editar consulta .

ID da consulta na página de edição da consulta

substituto tem o número ‘999999999’ porque deve ser um número exclusivo que não é reservado por alguma instância, como o ID do post. Se quiser usar um substituto com um valor de string, você também precisará adicionar aspas simples.

Agora a consulta SQL está concluída e você pode clicar no botão “Adicionar/Atualizar Consulta” .

Consulta SQL para postagens

Vamos fornecer um exemplo de snippet SQL caso as postagens sejam consultadas em vez dos usuários.

Nesse caso, você precisa escrever a tabela “postagens” na consulta personalizada em vez de “usuários”.

SELECT ID

FROM {prefix}posts

WHERE ID IN (

%query_results|135%{"fallback":"'999999999'"},

%query_results|136%{"fallback":"999999999"}

)
ORDER BY FIELD( 
   ID,
 %query_results|135%{"fallback":"'999999999'"},
 
%query_results|136%{"fallback":"999999999"}
)

Crie uma consulta personalizada para extrair resultados combinados da consulta SQL

Aviso

Esta etapa é necessária se o Listing Grid que usa esta consulta personalizada precisar ser filtrado pelo plugin JetSmartFilters .

Nesta fase, precisamos criar outra consulta personalizada no Query Builder .

Uma Listing Grid que usa a consulta personalizada SQL Avançada não pode ser filtrada, por isso é importante criar outra consulta de usuário, postagens, etc. que extraia todos os itens combinados da consulta SQL Avançada.

Portanto, adicione uma nova consulta, nomeie-a e selecione o tipo “Consulta de usuários” .

consulta personalizada para filtros

Em seguida, prossiga para a guia Incluir/Excluir , clique no ícone da pilha de moedas e adicione a macro “Resultados da consulta” ao campo Incluir .

Para a macro “Resultados da Consulta”, selecione a Consulta SQL Avançada criada na etapa anterior. Em seguida, escolha a opção “Lista de campos selecionados do objeto item” no campo Retorno e escreva “ID” na lista de campos separados por vírgula . Em seguida, pressione o botão “Aplicar” .

Agora, esta consulta de usuário possui uma lista de usuários combinados na consulta SQL. 

Macro de resultados da consulta

Em seguida, vá para a guia Misc e escolha a opção “Pela lista incluída de IDs de usuário (requer o parâmetro Incluir)” no campo Ordenar por . Esta ordem garantirá que os usuários com o metacampo Switcher habilitado sejam exibidos primeiro e os usuários com o Switcher desabilitado sejam mostrados depois.

ordenar pela lista incluída de IDs de usuário

Agora, você pode clicar no botão “Adicionar/Atualizar Consulta” .

Crie uma listagem para usuários

Vá para JetEngine> Listagens e clique no botão “Adicionar novo” . Selecione “Usuários” como fonte da listagem , insira o nome do item da listagem e escolha a visualização da listagem “Elementor” ou “Blocos (Gutenberg)” . Em seguida, clique no botão “Criar item de listagem” .

configurar item de listagem para usuários

Na página de edição do modelo de listagem, você pode adicionar o widget ou bloco de campo dinâmico para mostrar os dados do usuário. Adicionamos o Campo Dinâmico para exibir algum texto com base no estado do metacampo Switcher . Selecione “Meta Data” como Source e escolha o switcher Meta Field na Meta Box do usuário.

Para mostrar o texto diferente com base no valor do metacampo Switcher , ative a alternância de saída do campo Filtrar . Selecione os “Valores do campo Switcher” como retorno de chamada . 

retorno de chamada de valores de campo do switcher

Em seguida, adicione um texto necessário para cada estado nos campos Texto se habilitado e Texto desabilitado . No nosso caso, a mensagem “Este usuário foi verificado!” o texto aparecerá quando o usuário tiver o switcher no estado ativado e a mensagem ‘Este usuário não foi verificado’. o texto será mostrado quando o usuário tiver o switcher no estado desabilitado.

texto para os estados do switcher ativado e desativado

Neste ponto, o modelo de listagem pode ser salvo clicando no botão “Atualizar” .

Produza a listagem no front-end

Agora, você pode adicionar o widget ou bloco Listing Grid à página necessária e selecionar o modelo de listagem para usuários que acabou de ser criado na guia Configurações gerais .

Grade de listagem com modelo de listagem para usuários

Abra a guia Consulta Personalizada , ative o botão Usar Consulta Personalizada e selecione a Consulta Personalizada criada por último para manter os Usuários na ordem desejada.

habilite a consulta personalizada para a grade de listagem

Vamos salvar a página clicando no botão “Atualizar” e verificar o resultado no front end.

Podemos ver que o resultado desejado foi alcançado. Primeiramente são exibidos os usuários com o switcher habilitado e, em seguida, os usuários com o switcher desabilitado.

listagem com as consultas personalizadas combinadas no front-end

Isso é tudo. Agora você sabe como combinar várias consultas personalizadas em uma para organizar um pedido avançado no widget Listing Grid ou bloquear com o plugin JetEngine WordPress.

Índice