🎉 USE O CUPOM FIM.DE.SEMANA.FULL | 20% OFF acima de R$ 100,00

Como corrigir o erro de JavaScript no JetSmartFilters no WordPress

Time Full Services Time Full Services
Tipo Page Builders
Nome do erro Erro de JavaScript no JetSmartFilters EN: JetSmartFilters JavaScript console error
Severidade Atenção
Descrição O erro de JavaScript no JetSmartFilters acontece quando o script de filtragem trava no navegador por conflito de scripts, provider mal configurado ou cache servindo um arquivo antigo, fazendo os filtros pararem de aplicar e o console exibir mensagens de erro.

O que é erro de JavaScript no JetSmartFilters?

O erro de JavaScript no JetSmartFilters e a falha do script que aplica os filtros no navegador. O JetSmartFilters depende de um arquivo JavaScript próprio, que escuta a interacao do visitante com o filtro, monta a requisicao e atualiza o provider (o Listing Grid, Products Grid ou widget que mostra os resultados) sem recarregar a página inteira no modo AJAX. Quando esse script lanca uma excecao, o filtro deixa de responder: o clique não faz nada, os resultados não mudam e o console do navegador registra o erro.

O sintoma central e o filtro parar de funcionar com uma mensagem visivel apenas no console (F12 do navegador), e não na tela. O problema raramente esta no servidor: na maioria dos casos e um conflito entre o script do JetSmartFilters e outro plugin ou tema, um provider apontando para um Query ID que não existe, ou um plugin de cache e minificacao entregando uma versão quebrada do arquivo. Por isso o conserto passa por isolar o conflito, conferir a ligacao entre filtro e provider e limpar a entrega dos assets.

Como identificar

  • O console do navegador (F12) exibe ‘Uncaught TypeError’ ou ‘is not a function’ apontando para o arquivo jet-filters.js ou jet-smart-filters.js logo ao interagir com o filtro.
  • O filtro não aplica nada ao clicar: a lista de resultados não muda e nenhuma requisicao AJAX aparece na aba Network do navegador.
  • A mensagem ‘Uncaught ReferenceError: jQuery is not defined’ aparece no console quando outro plugin altera a ordem de carregamento dos scripts.
  • O console registra erro de sintaxe (‘Unexpected token’) vindo do arquivo de filtros, sinal de minificacao agressiva ou de um arquivo cacheado e truncado.
  • Os filtros funcionam no editor do Elementor mas quebram no frontend, com o console acusando script duplicado ou variavel já declarada.
Antes de começar: Antes de atualizar plugins, desativar cache ou trocar o tema em producao, faça um backup completo do site (arquivos e banco de dados) ou repita os testes primeiro em um ambiente de staging, para reverter caso a página dos filtros pare de carregar.

Como prevenir

  • Mantenha JetSmartFilters e JetEngine sempre na mesma geração de versão estavel, validando a atualização em staging antes de subir para producao.
  • No plugin de cache, exclua os scripts do JetSmartFilters da minificacao, combinacao e do delay de JavaScript, evitando que a otimização trunque ou atrase o arquivo.
  • Padronize um Query ID único e documentado para cada Listing/Products Grid e replique exatamente esse valor no filtro correspondente.
  • Evite duplicar o mesmo filtro ou template em popup e página ao mesmo tempo, para não redeclarar o script do JetSmartFilters na mesma tela.
  • Após qualquer mudanca de provider ou de fonte de dados, regenere o indexador do JetSmartFilters para manter o contrato de dados consistente.

Causa

  • Outro plugin ou o tema carrega uma versão diferente do jQuery, ou enfileira scripts fora de ordem, e o jet-filters.js executa antes de suas dependencias estarem prontas, lançando 'jQuery is not defined' ou 'is not a function'.
  • Um plugin de cache com minificacao ou combinacao de JavaScript (como o recurso de combine/minify do WP Rocket ou Autoptimize) corrompe ou trunca o script do JetSmartFilters, gerando 'Unexpected token' no console.
  • O widget de filtro aponta para um provider e Query ID que não correspondem ao Listing Grid ou Products Grid da página, entao o script não encontra o alvo no DOM e falha ao montar a requisicao.
  • O Optimize DOM e Markup ou o recurso de delay/defer de JavaScript do plugin de performance adia o script do JetSmartFilters depois do evento que ele precisa escutar, deixando o filtro inerte e o handler sem registrar.
  • Ha duas instancias do mesmo filtro ou do mesmo script JetSmartFilters na página (template duplicado, popup e página juntos), causando redeclaracao de variavel e excecao no console ao inicializar.
  • Uma versão desatualizada do JetSmartFilters ou do JetEngine deixa o indexador e o provider em contrato incompativel, e o JavaScript quebra ao tentar ler uma estrutura de dados que mudou entre versões.

Como resolver

  1. Leia a mensagem exata no console do navegador: Abra o console antes de tudo para saber qual erro tratar. A mensagem diz o tipo do erro e o arquivo de origem, o que separa conflito de jQuery, script truncado por cache e provider sem alvo. Anote a linha indicada.
    Abra a página do filtro e pressione F12 -> aba Console
    Interaja com o filtro e leia a mensagem (TypeError, ReferenceError ou Unexpected token)
    Na aba Network, filtre por 'Fetch/XHR' e confira se a requisicao do filtro sai ao clicar
  2. Desligue cache, minificacao e delay de JavaScript: Conflitos de assets são a causa mais comum. Limpe o cache e desative temporariamente combine/minify e delay de JavaScript do plugin de performance, depois recarregue a página com cache vazio para ver se o erro some.
    Painel WP -> plugin de cache (ex.: WP Rocket) -> File Optimization -> desligue Combine e Minify JavaScript
    Desative Delay JavaScript Execution e remova o jet-filters.js de qualquer exclusão mal feita
    Limpe todo o cache e recarregue a página com Ctrl+Shift+R (hard refresh)
  3. Confira o provider e o Query ID do filtro: O filtro precisa apontar para o mesmo provider e Query ID do Listing/Products Grid da página. Se não casam, o script não acha o alvo no DOM e quebra. Abra o widget do filtro e o do grid e compare os dois campos.
    Edite a página -> abra o widget de filtro -> confira o campo 'This filter for' (provider)
    Confirme que o 'Query ID' do filtro e identico ao 'Query ID' do Listing Grid ou Products Grid
    Se usar mais de um grid, defina um Query ID único em cada e replique no filtro correspondente
  4. Isole o conflito desativando plugins e trocando o tema: Se o erro persiste sem cache, e conflito de código. Desative os outros plugins um a um e troque para um tema padrão, recarregando a página e o console a cada teste até o erro desaparecer, identificando o culpado.
    Painel WP -> Plugins -> desative os demais plugins um a um (mantenha JetSmartFilters e JetEngine)
    Painel WP -> Aparencia -> Temas -> ative um tema padrão (ex.: Twenty Twenty-Four)
    Recarregue a página, repita a interacao e observe o console após cada mudanca
  5. Atualize JetSmartFilters e JetEngine e recrie o indexador: Versões diferentes do JetSmartFilters e do JetEngine podem deixar o contrato de dados incompativel. Atualize ambos para a versão estavel mais recente e, se usar a indexação de filtros, regenere o indexador após atualizar.
    Painel WP -> Plugins -> atualize JetSmartFilters e JetEngine para a versão estavel mais recente
    Painel WP -> JetSmartFilters -> Settings -> ative e regenere o Indexer (se estiver em uso)
    Recarregue a página e confira se o console fica limpo ao aplicar o filtro
PHP
<?php
/**
 * Exclui os scripts do JetSmartFilters do delay/defer de plugins de cache
 * via o filtro do WP Rocket, evitando que o arquivo de filtros seja adiado.
 */
add_filter( 'rocket_delay_js_exclusions', 'full_jsf_keep_filters_scripts' );
function full_jsf_keep_filters_scripts( $excluded ) {
    $excluded[] = 'jet-smart-filters';
    $excluded[] = 'jet-filters';
    return $excluded;
}

Perguntas frequentes

Por que o JetSmartFilters para de aplicar mas não aparece erro na tela
Porque a falha e do JavaScript, que so registra a mensagem no console do navegador. Abra o console com F12, interaja com o filtro e leia o erro (TypeError, ReferenceError ou Unexpected token) para saber se a causa e conflito de script, cache ou provider errado.
O cache e a minificacao podem quebrar o JetSmartFilters
Sim. Combinar, minificar ou atrasar o JavaScript pode truncar ou adiar o arquivo de filtros, gerando 'Unexpected token' no console. Exclua os scripts do JetSmartFilters dessas otimizacoes, limpe o cache e recarregue a página com hard refresh para confirmar.
Como o Query ID influencia o erro de JavaScript do filtro
O filtro usa o provider e o Query ID para encontrar o grid de resultados no DOM. Se o Query ID do filtro não for identico ao do Listing Grid ou Products Grid, o script não acha o alvo e falha. Confira os dois campos e iguale os valores.
O que significa 'jQuery is not defined' no console com JetSmartFilters
Significa que o script de filtros rodou antes do jQuery carregar, geralmente por outro plugin reordenar os assets. Desative os plugins um a um para achar o que muda a ordem de carregamento e evite mover o jQuery para o rodape sem necessidade.
Por que o filtro funciona no editor do Elementor mas quebra no frontend
O editor carrega os scripts de forma diferente do frontend. No site publicado pode haver script duplicado, cache servindo arquivo antigo ou outro plugin entrando em conflito. Teste o frontend com cache limpo e isole os plugins para identificar a diferenca.
Preciso regenerar o indexador depois de atualizar o JetSmartFilters
Se você usa a indexação de filtros, sim. Após atualizar JetSmartFilters ou JetEngine, regenere o indexador em Settings para que o contrato de dados volte a bater com o provider e o JavaScript pare de quebrar ao ler a estrutura.
Como saber se o erro e do JetSmartFilters ou de outro plugin
Desative os demais plugins um a um e troque para um tema padrão, recarregando a página e o console a cada teste. Se o filtro voltar a aplicar sem erro, reative os itens até encontrar o plugin ou tema que entra em conflito com o script.

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