Como corrigir o JetSmartFilters que não filtra dados dinâmicos
O que é o JetSmartFilters que não filtra?
O JetSmartFilters e o plugin de filtros da Crocoblock que filtra listagens dinamicas geradas pelo JetEngine, pelo Listing Grid ou pelo WooCommerce. Cada widget de filtro precisa apontar para um provider (a listagem que ele filtra) e, quando ha mais de uma listagem na página ou uma consulta do Query Builder, precisa do mesmo Query ID nas duas pontas. Quando esse vinculo falha, o filtro envia a requisicao mas a listagem ignora, e nada muda na tela. Em filtros por taxonomia ou campo meta, o indexador da Crocoblock ainda precisa ter indexado os valores para o filtro encontrar correspondencias.
Como identificar
- Você seleciona uma opção no filtro, a página ou o grid recarrega, mas o JetSmartFilters não filtra e os mesmos itens continuam aparecendo.
- O filtro mostra a mensagem “No data found” ou “Nenhum dado encontrado” mesmo havendo posts que batem com o criterio escolhido.
- Com duas listagens na página, o filtro afeta a listagem errada ou nenhuma, sinal de Query ID ausente ou divergente.
- O contador de termos do filtro aparece zerado ou os checkboxes não listam os valores esperados, indicando indexador desligado.
Como prevenir
- Defina um Query ID único por listagem já na montagem da página e repita o mesmo valor no filtro e na listagem
- Mantenha o indexador ligado e reindexe sempre que criar taxonomias ou campos meta novos para filtrar
- Atualize JetEngine e JetSmartFilters juntos e exclua o admin-ajax.php do cache desde a configuração inicial
Causa
- Provider errado no campo This filter for: para um Listing Grid do JetEngine o valor precisa ser JetEngine, e não WooCommerce Archive ou outro provedor.
- Query ID diferente entre o filtro, a listagem e a consulta do Query Builder, fazendo o filtro mirar a listagem errada ou nenhuma.
- Indexador da Crocoblock desligado, deixando filtros de taxonomia e campo meta sem valores indexados para comparar.
- Widget de filtro desativado em Crocoblock JetPlugins Settings JetSmartFilters General Settings, impedindo o filtro de operar sobre aquele tipo de conteúdo.
- Apply type e Apply on configurados de forma incompativel com a listagem, por exemplo AJAX num grid que so responde a recarga de página.
- Resposta do admin-ajax.php servida pelo cache da página, devolvendo sempre a mesma listagem não filtrada.
Como resolver
- Confirme o provider no filtro: abra o widget de filtro no editor e ajuste o campo de provider para a listagem certa. Para um Listing Grid do JetEngine, o provider tem de ser JetEngine, nunca o de WooCommerce ou de outro tipo.
Campo: This filter for -> JetEngine Campo: This filter for -> JetEngine (Custom Content Type) se a listagem usa CCT - Alinhe o Query ID nas duas pontas: use o mesmo identificador no filtro e na listagem. Sem espacos, sem números e sem caracteres especiais, e o valor precisa ser identico nos dois widgets para o filtro saber qual listagem atualizar.
Filtro -> aba Content -> Query ID: filter-grid Listing Grid -> Advanced -> CSS ID: filter-grid Query Builder -> Query ID: filter-grid (se a listagem usa uma consulta do Query Builder) - Ative o widget de filtro: verifique se o tipo de filtro que você usa esta habilitado no painel da Crocoblock. Se o toggle estiver desligado, o filtro não age sobre aquele conteúdo.
WordPress Dashboard -> Crocoblock -> JetPlugins Settings -> JetSmartFilters -> General Settings Ative o toggle do provider e do tipo de filtro usados - Ligue e rode o indexador: para filtros por taxonomia ou campo meta, ative o indexador e reindexe. Sem indice, o filtro não acha correspondencias e devolve a lista sem alteração.
JetSmartFilters Settings -> aba Indexer Settings -> ative o Indexer Smart Filters -> Smart Filters -> botao de reindexar (Index Filters) - Revise Apply type e Apply on: confira se o modo de aplicação do filtro combina com a listagem. Um grid que so responde a recarga não atualiza por AJAX, e vice-versa.
Filtro -> Apply type: AJAX (ou Page reload, conforme a listagem) Filtro -> Apply on: Value Change (ou Submit, se usa botao Apply) - Exclua o admin-ajax do cache: se o filtro chama por AJAX, garanta que o cache não sirva uma resposta velha. Exclua o endpoint de AJAX do cache de página do plugin de cache ou do servidor.
No plugin de cache: adicione /wp-admin/admin-ajax.php as exclusoes de cache de página Limpe o cache do site e do CDN após a alteração
# nginx - nao cachear o endpoint AJAX que o JetSmartFilters usa para filtrar
# (sem isto, o cache de pagina devolve sempre a mesma listagem nao filtrada)
location = /wp-admin/admin-ajax.php {
set $skip_cache 1;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}














