🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir o JetSmartFilters AJAX que não retorna resultados

Time Full Services Time Full Services
Tipo Page Builders
Nome do erro JetSmartFilters AJAX sem resultados EN: JetSmartFilters AJAX returning no results
Severidade Grave
Descrição O JetSmartFilters AJAX que não retorna resultados aplica o filtro, dispara a chamada ao admin-ajax.php, mas o Listing Grid volta vazio ou sem mudar. A causa quase sempre e o Query ID do filtro diferente do provider, o indexer não gerado, ou o cache servindo a página antiga.

O que é o JetSmartFilters AJAX que não retorna resultados?

O JetSmartFilters aplica filtros sobre um provider (Listing Grid do JetEngine, Products Grid do WooCommerce ou Query Loop) sem recarregar a página, usando uma requisicao AJAX ao admin-ajax.php do WordPress. Quando esse caminho falha, o filtro parece responder (mostra o spinner de carregamento), mas o grid volta vazio, repete os mesmos itens ou não reflete a opção marcada. O elo entre o filtro e o provider e o Query ID: se eles não casam, o filtro consulta uma query que não existe naquela página e nada e retornado.

Como identificar

  • Você marca uma opção do filtro, aparece o spinner de carregamento, mas o Listing Grid volta vazio ou com a mensagem de nada encontrado.
  • O filtro aplica via AJAX e o grid não muda: continua exibindo os mesmos itens de antes do filtro.
  • A aba Network do navegador mostra a chamada ao admin-ajax.php com action jet_smart_filters retornando 500, 403 ou um corpo vazio.
  • Os filtros funcionam com recarga de página (apply type Page reload), mas param de retornar resultados ao mudar para AJAX.

Como prevenir

  • Defina um Query ID único e identico entre filtro, provider, paginação e ordenacao sempre que a página tiver mais de um Listing Grid
  • Exclua o admin-ajax.php e o JavaScript do JetSmartFilters do cache e da minificacao desde a configuração inicial do site
  • Após importar ou editar conteúdo em massa, reindexe os filtros quando o Indexer estiver ligado

Causa

  • Query ID divergente entre o filtro e o provider: o campo Query ID do filtro tem um valor diferente do Query ID do Listing Grid, entao a chamada AJAX consulta uma query que não existe naquela página.
  • Provider errado no filtro: o campo This filter for aponta para JetEngine Listing Grid quando o provider real e o WooCommerce Products Grid (ou vice-versa), e o AJAX consulta o provider que não esta na página.
  • Indexer não gerado ou desatualizado: com o Indexer ligado, os contadores e o filtro dependem do indice; sem reindexar após cadastrar posts, o filtro retorna zero resultados.
  • Plugin de cache ou minificacao de JavaScript quebrando a chamada ao admin-ajax.php, ou servindo a página estatica antiga em vez da resposta AJAX.
  • Plugin de segurança ou regra do servidor bloqueando o admin-ajax.php para visitantes deslogados, fazendo a requisicao AJAX retornar 403 e o grid ficar vazio.

Como resolver

  1. Iguale o Query ID do filtro e do provider: abra o widget do filtro e o widget do Listing Grid ou Products Grid e confirme que ambos usam exatamente o mesmo Query ID, sem espacos nem caracteres especiais. Se o provider esta sem Query ID, deixe o filtro também sem Query ID.
    Filtro -> aba Geral -> Query ID: produtos
    Listing Grid / Products Grid -> aba Geral -> Query ID: produtos
  2. Confirme o provider correto no filtro: no widget do filtro, ajuste o campo This filter for para o provider que existe na página. JetEngine Listing Grid para listagens do JetEngine e WooCommerce Products Grid para grades de produto.
    Filtro -> This filter for -> JetEngine Listing Grid
    Filtro -> Apply type -> AJAX
  3. Reindexe os filtros: se o Indexer esta ligado, reconstrua o indice após qualquer mudanca de conteúdo. Sem reindexar, o filtro consulta um indice vazio e não retorna resultados.
    WordPress -> SmartFilters -> Settings -> aba Indexer
    Reindexar o provider após cadastrar ou editar posts
  4. Exclua o admin-ajax do cache e da minificacao: no plugin de cache, exclua a URL do admin-ajax e o JavaScript do JetSmartFilters da minificacao e combinacao, e ative a opção de não cachear URLs com parametros GET para o filtro não bater na página estatica antiga.
    Excluir do cache: /wp-admin/admin-ajax.php
    Excluir da minificacao/combine JS: jet-smart-filters
    Ativar: Não cachear URLs com parametros GET (Don't cache URLs with GET parameters)
  5. Libere o admin-ajax.php no plugin de segurança: se a aba Network mostra 403 no admin-ajax.php, confira o plugin de segurança ou o firewall e libere o endpoint para visitantes deslogados, já que o AJAX do filtro roda no front-end sem login.
    Permitir POST em /wp-admin/admin-ajax.php para usuários deslogados
    Testar com cache e plugin de segurança desativados para isolar o bloqueio
APACHE
# .htaccess - garante que o admin-ajax.php nunca seja cacheado nem bloqueado
# Coloque no .htaccess da raiz, acima das regras do WordPress
<IfModule mod_headers.c>
  <Files "admin-ajax.php">
    Header set Cache-Control "no-cache, no-store, must-revalidate"
  </Files>
</IfModule>

# Libera o endpoint AJAX para visitantes deslogados (o filtro roda no front-end sem login)
<Files "admin-ajax.php">
  Require all granted
</Files>

Perguntas frequentes

Por que o filtro mostra o spinner mas o grid volta vazio?
Quase sempre o Query ID do filtro e diferente do Query ID do provider, entao o AJAX consulta uma query que não existe na página e retorna zero itens. Abra os dois widgets e iguale o campo Query ID; se o provider esta sem Query ID, deixe o filtro também sem valor.
O que e o Query ID do JetSmartFilters?
E um identificador de texto que liga o filtro ao provider correto na página, garantindo que o filtro atualize so o Listing Grid pretendido. Ele não pode ter espacos nem caracteres especiais e precisa ser igual no filtro, no provider e nos widgets de paginação e ordenacao.
O filtro funciona com recarga, mas para no AJAX. Por que?
No modo AJAX a resposta vem do admin-ajax.php, que pode ser quebrado pela minificacao de JavaScript, servido em cache antigo, ou bloqueado por um plugin de segurança. Exclua o admin-ajax e o script do filtro do cache e da minificacao e teste com o plugin de segurança desativado.
Preciso reindexar os filtros do JetSmartFilters?
Sim, quando o Indexer esta ligado. Os contadores e o resultado dependem do indice, e ele não se atualiza sozinho após cadastrar ou editar posts. Reindexe o provider em SmartFilters -> Settings -> Indexer sempre que o conteúdo mudar para o filtro voltar a retornar resultados.
Como sei se o admin-ajax.php esta sendo bloqueado?
Abra a aba Network do navegador, aplique o filtro e olhe a requisicao para admin-ajax.php com action jet_smart_filters. Se o status for 403 ou 500, ou o corpo vier vazio, ha bloqueio do servidor ou de plugin de segurança, ou erro de PHP no provider.
Tenho dois Listing Grids e o filtro atualiza o errado. O que fazer?
Defina um Query ID único para cada grid e use o mesmo valor no filtro que deve controla-lo. Sem Query ID o filtro tenta atualizar o primeiro provider da página, o que com várias grades faz o resultado parecer vazio ou errado na grade pretendida.
O plugin de cache pode esconder os resultados do filtro?
Pode. Se a página e cacheada estaticamente, a resposta AJAX do filtro e sobreposta pela versão antiga em cache, deixando o grid sem mudar. Ative a opção de não cachear URLs com parametros GET e exclua o admin-ajax.php do cache do plugin.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes