Como corrigir o erro de query no Listing Grid do JetEngine
O que é o erro de query no Listing Grid do JetEngine?
O erro de query no Listing Grid do JetEngine acontece quando o widget de Listing aponta para uma Custom Query criada no Query Builder e essa query falha ao executar ou devolve zero linhas. O Query Builder e a ferramenta do JetEngine que monta a consulta ao banco (Posts Query, Terms Query, Users Query, SQL/AI Query, CCT Query, REST API Query, entre outras) e entrega o resultado ao Listing Grid quando a opção Use custom query esta ligada e a query certa esta escolhida no dropdown Custom Query.
Como identificar
- O Listing Grid renderiza vazio no frontend, mas o mesmo Listing com a query padrão do Post Type mostra os itens normalmente.
- Com WP_DEBUG ligado, a página exibe WordPress database error perto da abertura do grid, indicando que a query do tipo SQL chegou malformada ao banco.
- No editor da query, o botao Preview do Query Builder mostra os registros, mas no frontend o Listing Grid continua sem resultados.
- O Listing Grid mostra apenas a mensagem de no posts found, ou a paginação some, mesmo com itens existentes que deveriam casar com o filtro.
- O Listing Grid exibe um erro de macro não resolvida quando a query usa um valor dinamico como current_post_id ou current_user_id que veio vazio.
Antes de começar: Antes de editar uma query do tipo SQL Query ou apagar condicoes de uma query em producao, faca backup do site e do banco de dados: uma query SQL mal escrita pode ler tabelas além do esperado e, em páginas de alto tráfego, sobrecarregar o banco. Teste a query no Preview e, de preferencia, em ambiente de staging antes de publicar.
Como prevenir
- Sempre rode o Preview da query no Query Builder antes de liga-la a um Listing Grid, confirmando que ela retorna linhas isolada do frontend
- Use o Query Type que corresponde ao objeto do Listing Template, evitando misturar Users Query ou Terms Query num Listing montado sobre Post Type
- Evite o tipo SQL Query quando uma Posts Query ou CCT Query resolve, e quando usar SQL teste a instrucao com o prefixo de tabela correto antes de salvar
- Exclua o Listing do cache de objeto agressivo enquanto edita queries, para não confundir um resultado em cache com um erro real
Causa
- A opção Use custom query do Listing Grid esta ligada mas o dropdown Custom Query aponta para uma query inexistente, renomeada ou excluida no Query Builder, deixando o grid sem fonte de dados.
- O Query Type do Query Builder não casa com o que o Listing Template renderiza, por exemplo uma Users Query alimentando um Listing montado sobre um Post Type, fazendo o grid não encontrar os campos esperados.
- Erro de sintaxe no tipo SQL Query do Query Builder, como tabela sem o prefixo correto da instalação ou virgula faltando, que o MySQL rejeita e devolve como WordPress database error.
- Uma condicao de Meta Query usando o compare EXISTS ou um valor que nenhum registro possui, eliminando todas as linhas e devolvendo o grid vazio sem erro visivel.
- Macro dinamica como current_post_id, current_user_id ou queried_var resolvendo para vazio no contexto onde o Listing Grid foi inserido, fazendo a clausula WHERE filtrar tudo.
- Plugin de cache de objeto ou de página servindo um resultado antigo da query depois que ela foi editada, mascarando a correção real e mostrando o estado quebrado.
Como resolver
- Confirme qual query o Listing Grid esta usando: abra o widget do Listing Grid no editor e verifique se a opção Use custom query esta ligada e se o dropdown Custom Query aponta para a query certa do Query Builder. Se a query foi renomeada ou excluida, reselecione a query valida.
Editor -> Listing Grid -> Content -> Use custom query (ON) -> Custom Query -> selecionar a query correta - Rode o Preview da query e compare o Query Type: no Query Builder, abra a query e use o Preview para ver se ela retorna linhas isolada do frontend. Confirme que o Query Type casa com o objeto que o Listing Template renderiza, ou seja, Posts Query para Listing de posts e CCT Query para Listing de Custom Content Type.
WP Admin -> JetEngine -> Query Builder -> abrir a query -> Preview WP Admin -> JetEngine -> Query Builder -> conferir o Query Type da query - Ligue o WP_DEBUG e leia o erro real do banco: ative o log de debug para capturar a mensagem exata do MySQL quando a query do tipo SQL Query for invalida. O texto do erro mostra a tabela ou a clausula que o banco rejeitou, em vez de o grid so ficar vazio.
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); - Revise a clausula de Meta Query e as macros: abra as condicoes da query e remova temporariamente os filtros de Meta Query e os valores dinamicos por macro, um de cada vez, até o grid voltar a retornar. Assim você isola qual condicao ou macro vazia estava eliminando todos os registros.
WP Admin -> JetEngine -> Query Builder -> abrir a query -> Meta Query -> remover/ajustar condicao WP Admin -> JetEngine -> Query Builder -> conferir macros (current_post_id, current_user_id) no contexto de uso - Limpe o cache e revalide no frontend: depois de corrigir a query, limpe o cache de objeto e de página para o frontend parar de servir o resultado antigo. So entao confirme que o Listing Grid renderiza os itens na página publicada.
Plugin de cache -> Limpar cache de página e de objeto Recarregar a página do Listing com Ctrl+Shift+R
PHP
// functions.php do tema-filho — registra no debug.log a query montada pelo JetEngine
// para o Listing Grid, para voce ver a clausula WHERE/SQL real que chega ao banco.
// Use so em staging; remova depois de depurar.
add_filter( 'jet-engine/query-builder/query/final-query', function ( $args, $query ) {
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
error_log( '[JetEngine Query ' . $query->get_id() . '] ' . wp_json_encode( $args ) );
}
return $args;
}, 10, 2 );
Perguntas frequentes
Por que o Listing Grid do JetEngine aparece vazio mesmo com itens cadastrados?
Quase sempre a Custom Query ligada no grid esta com o Query Type errado, com uma Meta Query que exclui todos os registros, ou aponta para uma query renomeada. Abra o Listing Grid, confira o dropdown Custom Query e rode o Preview da query no Query Builder para ver se ela retorna linhas isolada do frontend.
Como vejo o erro real da query em vez do grid so vazio?
Ligue WP_DEBUG e WP_DEBUG_LOG no wp-config.php e recarregue a página do Listing. Se a query do tipo SQL Query estiver malformada, o WordPress registra um database error com a tabela ou clausula que o MySQL rejeitou, o que aponta a causa direta em vez de você so ver o grid vazio.
A query funciona no Preview do Query Builder mas o Listing Grid fica vazio. Por que?
Isso acontece quando o Query Type não casa com o objeto que o Listing Template renderiza, ou quando uma macro como current_post_id resolve para vazio no contexto da página. O Preview roda fora desse contexto, entao mostra resultado; no frontend a macro vazia filtra tudo. Ajuste o Query Type e revise as macros.
O que e a opção Use custom query no Listing Grid?
E o toggle que faz o Listing Grid usar uma query montada no Query Builder em vez da query padrão do Post Type. Quando ligado, abre o dropdown Custom Query para você escolher qual query alimenta o grid. Se nenhuma query valida estiver selecionada, o grid fica sem fonte de dados e retorna vazio.
Posso usar uma query do tipo SQL Query no Listing Grid?
Pode, o SQL Query Type le dados direto de tabelas do banco e entrega ao Listing Grid. Mas qualquer erro de sintaxe ou tabela sem o prefixo correto da instalação vira um database error. Teste a instrucao com cuidado e prefira Posts Query ou CCT Query quando elas resolverem o mesmo objetivo.
Por que minha Meta Query deixa o Listing Grid sem resultados?
Uma condicao de Meta Query com compare EXISTS, um valor que nenhum registro possui, ou o tipo de valor errado elimina todas as linhas sem gerar erro visivel. Remova as condicoes uma a uma no Query Builder até o grid voltar a retornar para isolar qual filtro estava zerando o resultado.
O cache pode mascarar a correção da query?
Sim. O cache de objeto ou de página pode servir o resultado antigo da query depois de você corrigi-la, fazendo o grid continuar vazio mesmo com a query já certa. Limpe o cache de página e de objeto e recarregue com Ctrl+Shift+R para validar a correção no frontend.
Preciso editar arquivo para resolver ou da pelo painel do JetEngine?
Na maioria dos casos resolve pelo painel: reselecionar a Custom Query, ajustar o Query Type e revisar a Meta Query no Query Builder. So e preciso editar arquivo para ligar o WP_DEBUG no wp-config.php quando a query e do tipo SQL e você precisa ler a mensagem exata do banco.














