Como corrigir o cache do WP-Optimize que quebra os listings do JetEngine no WordPress
O que é cache do WP-Optimize que quebra os listings do JetEngine?
O WP-Optimize cache que quebra os listings do JetEngine acontece na fronteira entre uma camada de cache estático e um conteúdo que o JetEngine monta de forma dinâmica. O JetEngine renderiza Listing Grids consultando o banco a cada carregamento, e o JetSmartFilters atualiza esse grid por AJAX sem recarregar a página. Quando o WP-Optimize entrega uma copia HTML congelada da página ou interfere nos scripts que disparam esses pedidos, o grid aparece vazio, desatualizado ou trava ao filtrar.
Segundo a documentação do WP-Optimize, o plugin trabalha em três frentes que tocam esse fluxo: o page cache (com opções de cache específico por usuário e por cookie), o Minify de CSS e JavaScript com merge e exclusão por arquivo, e a limpeza automática do cache em determinados eventos. Cada uma dessas frentes, quando aplicada sem excecao ao JetEngine, vira uma causa concreta de Listing Grid quebrado: o cache serve dado velho, o merge junta um script do JetSmartFilters fora de ordem, ou a página não e purgada quando um item do CPT muda.
Como identificar
- O Listing Grid do JetEngine aparece vazio ou mostra itens antigos para visitantes deslogados, mas volta ao normal para quem esta logado como administrador (sinal classico de cache de página servindo HTML congelado).
- Ao clicar em um filtro do JetSmartFilters a página não atualiza o grid, ou retorna a mensagem ‘No data was found’ mesmo havendo posts que correspondem ao filtro.
- Itens novos publicados em um Custom Post Type do JetEngine demoram a surgir no Listing Grid e so aparecem depois de limpar o cache manualmente em WP-Optimize.
- No console do navegador (F12) surgem erros de JavaScript como ‘Uncaught TypeError’ ou ‘is not a function’ apontando para scripts do JetEngine ou do JetSmartFilters depois de ativar o merge de JS.
- A paginação com AJAX ou o ‘Load more’ do Listing Grid para de funcionar e o botão fica inerte após ativar a opção de minify e merge de JavaScript do WP-Optimize.
Como prevenir
- Sempre exclua os scripts e estilos do JetEngine e do JetSmartFilters do merge de CSS e JS ao ativar o Minify do WP-Optimize, antes de aplicar em producao.
- Mantenha as páginas com JetSmartFilters em URL fora do page cache ou configure cache que varie por parametro de consulta, para que cada combinacao de filtro entregue o resultado correto.
- Teste qualquer mudanca de cache e minify primeiro em staging com um Listing Grid real, conferindo paginação, AJAX e filtros antes de publicar.
- Garanta a invalidacao do cache ao publicar ou editar itens do Custom Post Type, automatizando a limpeza pelo hook save_post para evitar grids desatualizados.
Causa
- O page cache do WP-Optimize esta servindo uma copia HTML estática da página do Listing Grid: como o JetEngine consulta o banco a cada visita, o cache congela o estado do grid e visitantes deslogados veem dados antigos ou a página vazia gerada na primeira passagem.
- A opção de merge de JavaScript do WP-Optimize junta os scripts do JetSmartFilters e do JetEngine com outros arquivos num único bundle, alterando a ordem de carregamento e quebrando as chamadas AJAX que filtram e paginam o Listing Grid.
- O minify de CSS do WP-Optimize remove ou reescreve regras usadas pelo Listing Grid (colunas, masonry, lazy load do JetEngine), fazendo o grid colapsar para uma coluna ou ficar sem estilo no frontend.
- O cache não e invalidado quando um item do Custom Post Type muda: como a publicação de um CPT nem sempre dispara o evento de limpeza do page cache do WP-Optimize, o Listing Grid continua exibindo a versão cacheada sem o item novo.
- Falta uma regra de cache específico por cookie ou por URL para as páginas com JetSmartFilters: a URL com parametros de filtro acaba servida pela mesma página cacheada da URL base, retornando sempre o mesmo conjunto de resultados independentemente do filtro aplicado.
Como resolver
- Confirme que o cache de página e a origem do listing quebrado: Abra a página do Listing Grid em uma janela anonima (deslogado) e compare com a visao de administrador logado. Se o grid so quebra para o visitante deslogado, a causa e o page cache servindo HTML congelado. Limpe o cache em WP-Optimize e recarregue para confirmar.
Painel WP -> WP-Optimize -> Cache -> botão Purge cache Abra a página do Listing Grid em uma aba anonima e recarregue Compare o resultado com a visao do administrador logado - Exclua os scripts do JetEngine e JetSmartFilters do merge de JavaScript: Na aba Minify do WP-Optimize, em JavaScript, adicione os handles ou os arquivos do JetEngine e do JetSmartFilters a lista de exclusão para que não entrem no bundle único. A documentação do WP-Optimize prove a opção de excluir scripts individuais do minify e do merge.
Painel WP -> WP-Optimize -> Minify -> JavaScript Em 'Exclude the following JavaScript files', adicione jet-engine e jet-smart-filters Salve e teste a paginação e os filtros do Listing Grid no frontend - Exclua o CSS do Listing Grid do minify e merge se o layout quebrar: Se o grid perder colunas ou estilo, va a aba Minify em CSS e exclua os arquivos de estilo do JetEngine do minify e merge, usando a opção de exclusão individual de CSS documentada pelo WP-Optimize. Recarregue o frontend para confirmar o layout.
Painel WP -> WP-Optimize -> Minify -> CSS Em 'Exclude the following CSS files', adicione os arquivos jet-engine Salve e recarregue a página do Listing Grid sem cache - Exclua as páginas do Listing Grid do page cache: Para listings altamente dinâmicos ou com JetSmartFilters em URL, adicione a URL da página a lista de URLs que nunca devem ser cacheadas em WP-Optimize. Assim o JetEngine sempre monta o grid fresco a partir do banco, sem servir copia estática.
Painel WP -> WP-Optimize -> Cache -> Advanced settings Em 'URLs to exclude from caching', informe o caminho da página do Listing Grid Salve, purgue o cache e teste os filtros em janela anonima - Garanta a limpeza do cache quando um CPT do JetEngine muda: Se itens novos demoram a aparecer, force a limpeza do page cache do WP-Optimize sempre que um post do Custom Post Type for salvo ou atualizado, usando o hook save_post. Isso resolve o caso em que a publicação do CPT não dispara a invalidacao automática do cache.
Adicione o código da seção 'Código' ao functions.php do tema filho ou a um plugin de snippets Salve um item do CPT do JetEngine para disparar a limpeza Confirme em janela anonima que o item novo aparece no Listing Grid
<?php
/**
* Limpa o page cache do WP-Optimize sempre que um item de CPT do JetEngine
* for salvo, evitando Listing Grids com dados desatualizados.
*/
add_action( 'save_post', 'full_purge_wpo_cache_on_cpt_save', 20, 2 );
function full_purge_wpo_cache_on_cpt_save( $post_id, $post ) {
// Ignora autosave e revisoes para nao limpar o cache a toa.
if ( wp_is_post_autosave( $post_id ) || wp_is_post_revision( $post_id ) ) {
return;
}
// Ajuste para os post types que alimentam seus Listing Grids.
$listing_post_types = array( 'projetos', 'imoveis', 'eventos' );
if ( ! in_array( $post->post_type, $listing_post_types, true ) ) {
return;
}
// API publica do WP-Optimize para limpar o page cache.
if ( class_exists( 'WP_Optimize' ) && function_exists( 'WP_Optimize' ) ) {
$cache = WP_Optimize()->get_page_cache();
if ( $cache && method_exists( $cache, 'purge' ) ) {
$cache->purge();
}
}
}














