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

Como corrigir o JetSmartFilters que não filtra dados dinâmicos

Time Full Services Time Full Services
Tipo Page Builders
Nome do erro JetSmartFilters não filtra dados dinâmicos EN: JetSmartFilters not filtering dynamic data
Severidade Grave
Descrição O JetSmartFilters que não filtra mostra o filtro aplicado mas o Listing Grid do JetEngine continua igual, sem reduzir os resultados. A causa quase sempre e o provider errado no campo This filter for, o Query ID divergente entre filtro e listagem, ou o indexador desligado para filtros de taxonomia e meta.

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.
Antes de começar: Antes de mexer no indexador em um site grande, rode a reindexacao em horario de baixo tráfego: indexar muitos termos e posts consome banco e pode deixar o painel lento por alguns minutos. Faca backup antes de aplicar o snippet do servidor.

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

  1. 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
  2. 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)
  3. 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
  4. 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)
  5. 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)
  6. 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
# 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;
}

Perguntas frequentes

Por que o JetSmartFilters não filtra meu Listing Grid do JetEngine?
Na maioria dos casos o provider esta errado. No campo This filter for o valor precisa ser JetEngine para filtrar um Listing Grid; se estiver em WooCommerce Archive ou outro provedor, o filtro mira a listagem errada e nada muda. Ajuste o provider e teste de novo.
O que e o Query ID e por que ele trava o filtro?
O Query ID e um identificador que conecta o filtro a uma listagem específica. Quando ha mais de uma listagem na página ou uma consulta do Query Builder, o filtro precisa do mesmo Query ID da listagem para saber qual atualizar. Se os valores divergem ou um esta vazio, o filtro não encontra a listagem e fica sem efeito.
O filtro mostra "No data found" mesmo com posts que batem. O que e?
Geralmente o indexador esta desligado. Filtros por taxonomia ou campo meta dependem do indexador da Crocoblock ter indexado os valores. Ative o Indexer nas configurações do JetSmartFilters e rode a reindexacao em Smart Filters para o filtro voltar a achar correspondencias.
Tenho duas listagens e o filtro mexe na errada. Como resolver?
Isso e Query ID ausente. Defina um Query ID único em cada listagem e repita exatamente o mesmo valor no filtro que deve controla-la. Sem espacos, números ou caracteres especiais. Assim cada filtro atualiza so a listagem que você vinculou a ele.
Preciso ativar algo no painel da Crocoblock para o filtro funcionar?
Sim. Em Crocoblock, JetPlugins Settings, JetSmartFilters, General Settings ha toggles por tipo de conteúdo. Se o toggle do provider que você usa estiver desligado, o filtro não opera sobre aquele conteúdo. Ative o toggle correspondente e recarregue o editor.
O cache pode fazer o JetSmartFilters parar de filtrar?
Pode. Quando o filtro trabalha por AJAX, ele chama o admin-ajax.php, e se o cache de página servir uma resposta antiga a listagem volta sempre igual. Exclua o admin-ajax.php das exclusoes de cache do plugin ou do servidor e limpe o cache do site e do CDN.
Conferir o Apply type resolve filtros que recarregam mas não filtram?
Em muitos casos, sim. Se o Apply type esta em AJAX mas a listagem so responde a recarga de página, ou o contrario, o filtro dispara sem atualizar o resultado. Alinhe o Apply type e o Apply on do filtro ao comportamento da listagem que você esta filtrando.

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