Como corrigir o erro de query no JetEngine quando o Listing não filtra
O que é o JetEngine Listing que não filtra?
O Listing Grid do JetEngine renderiza uma listagem dinâmica e, quando ha um filtro do JetSmartFilters na página, o filtro precisa saber exatamente qual query do grid atualizar. Esse vinculo e feito pelo Query ID: o mesmo identificador tem de estar no filtro e no Listing Grid. Se o grid usa uma Custom Query montada no Query Builder, o Query ID dessa consulta também precisa bater. Quando os identificadores divergem, ou quando o provider do filtro não aponta para o JetEngine, o filtro envia a requisicao mas a query do grid ignora os argumentos e devolve a listagem padrão, sem filtrar. O resultado e um grid que recarrega visualmente, porém mostra sempre os mesmos resultados.
Como identificar
- Você escolhe uma opção no filtro, o Listing Grid recarrega ou pisca, mas o JetEngine Listing não filtra e os mesmos posts continuam na lista.
- A URL ganha o parametro do filtro, por exemplo jsf ou meta_category, mas a contagem de resultados do grid não muda.
- Com dois Listing Grids na mesma página, o filtro afeta o grid errado ou nenhum, sinal de Query ID ausente ou repetido.
- O grid que usa Custom Query do Query Builder ignora o filtro por completo, enquanto um grid simples na mesma página filtra normal.
Como prevenir
- Atribua um Query ID único a cada Listing Grid já na montagem da página e repita o mesmo valor em todos os filtros que controlam aquele grid
- Sempre que o grid usar uma Custom Query do Query Builder, defina o mesmo Query ID na consulta antes de adicionar filtros
- Padronize o formato do Query ID com letras minusculas e hifen, evitando espacos, números e caracteres especiais que quebram o vinculo
Causa
- Query ID divergente: o valor no campo Query ID do filtro não e identico ao Query ID do Listing Grid, entao o filtro não encontra a query que deve atualizar.
- Custom Query do Query Builder sem Query ID: a listagem usa uma consulta do Query Builder, mas o mesmo Query ID não foi repetido na aba da consulta, e o filtro mira a query default em vez da custom.
- Provider errado no filtro: o campo This filter for esta em JetEngine no caso de Custom Content Type, ou aponta para WooCommerce Archive, em vez do provedor JetEngine usado pelo Listing Grid.
- Query ID com formato invalido: o identificador contem espacos, números ou caracteres especiais, valores que o JetSmartFilters não casa entre as duas pontas.
- Dois Listing Grids na página compartilhando o mesmo Query ID vazio, fazendo o filtro não distinguir qual query atualizar.
Como resolver
- Defina um Query ID valido no Listing Grid: abra o Listing Grid no editor e atribua um identificador único ao grid. O valor precisa ser so com letras e hifens, sem espacos, sem números e sem caracteres especiais, porque e ele que vai amarrar o filtro a este grid.
Listing Grid -> aba Settings -> campo Query ID: filtro-imoveis Regra do valor: so letras minusculas e hifen, sem espaco, sem número, sem acento - Repita o mesmo Query ID no filtro: abra cada widget de filtro do JetSmartFilters e cole exatamente o mesmo identificador do grid. Qualquer diferenca de uma letra faz o filtro mirar outra query e o grid não filtrar.
Filtro -> aba Content -> campo Query ID: filtro-imoveis Confirme que o valor e identico ao do passo 1, caractere por caractere - Amarre o Query ID na Custom Query do Query Builder: se o Listing Grid usa uma consulta criada no Query Builder, abra essa consulta e defina o mesmo Query ID nela. Sem isso, o filtro continua mirando a query padrão do grid e ignora a Custom Query.
WordPress Dashboard -> JetEngine -> Query Builder -> abra a consulta usada pelo grid Query Builder -> bloco da consulta -> campo Query ID: filtro-imoveis - Confira o provider no filtro: verifique se o filtro esta apontando para o provedor JetEngine, e não para um arquivo do WooCommerce ou outro tipo. Para um Listing Grid que monta Custom Content Type, o provider correto e o JetEngine de CCT.
Filtro -> campo This filter for: JetEngine Se a listagem usa CCT: Filtro -> This filter for: JetEngine (Custom Content Type) - Teste o filtro e inspecione a query: salve, abra a página no front e aplique o filtro. Se ainda não filtrar, use o hook do provedor para registrar os argumentos da query e confirmar se o filtro chega ao grid. O código abaixo mostra como logar esses argumentos.
Aplique o filtro no front e observe se a contagem do grid muda Use o snippet do bloco de código para registrar os query args no debug.log
<?php
// Registra os argumentos da query do Listing Grid para confirmar se o filtro chega ate ele.
// Conecta-se ao hook do provedor JetEngine usado pelo JetSmartFilters.
add_filter( 'jet-engine/listing/grid/posts-query-args', function ( $args, $widget ) {
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
error_log( 'JetEngine Listing query args: ' . wp_json_encode( $args ) );
}
return $args;
}, 99, 2 );














