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

Como corrigir o Calendar do JetEngine que não exibe eventos dinâmicos no WordPress

Time Full Services Time Full Services
Tipo Page Builders
Nome do erro JetEngine Calendar não exibe eventos dinâmicos EN: JetEngine Calendar not displaying dynamic events
Severidade Atenção
Descrição O JetEngine Calendar não exibe eventos dinâmicos quando o campo de data escolhido em Group calendar cells by está vazio ou em formato que o widget não interpreta, quando a query do Listing não retorna posts, ou quando o Listing Template aponta para uma fonte diferente da consultada.

O que é JetEngine Calendar que não exibe eventos?

O JetEngine Calendar é um widget e bloco da Crocoblock que monta um calendário e distribui posts, Custom Post Types ou registros de Custom Content Type pelas células de cada dia. Cada item aparece renderizado por um Listing Template, e a célula em que ele cai é decidida pelo campo de data indicado na opção Group calendar cells by. É essa combinação Listing mais campo de data que transforma uma lista de eventos em um calendário visual no frontend.

Quando o JetEngine Calendar não exibe eventos, o calendário até carrega a grade de dias, mas as células ficam vazias. Isso quase sempre indica que o calendário não conseguiu casar cada item a uma data: o campo escolhido em Group calendar cells by não está preenchido, está salvo num formato que o widget não consegue ler, ou a query por trás do Listing simplesmente não devolve nenhum post para o período exibido. O calendário só desenha um evento quando recebe ao mesmo tempo um item da query e uma data válida nesse item.

Como identificar

  • O calendário renderiza a grade de dias normalmente, mas nenhuma célula mostra eventos, mesmo havendo posts cadastrados com data.
  • Os eventos aparecem todos no mesmo dia ou em dias errados, em vez de caírem na data real de cada item.
  • A célula exibe apenas a data ou um espaço em branco no lugar do conteúdo do Listing Template do evento.
  • Ao trocar de mês a navegação funciona, porém todos os meses ficam sem eventos, inclusive os que têm posts agendados.
  • Eventos antigos somem do calendário enquanto os de data futura também não aparecem, sugerindo filtro de data na query cortando os resultados.
Antes de começar: Antes de alterar o formato de salvamento do campo de data ou reconfigurar a query em produção, faça um backup do site e do banco de dados, ou teste primeiro em um ambiente de staging, porque mudar o formato de gravação pode afetar datas já salvas nos posts existentes.

Como prevenir

  • Defina o formato de gravação do campo de data dos eventos uma única vez no Meta Box do JetEngine e mantenha o mesmo padrão em todos os posts para o calendário sempre conseguir agrupar por dia.
  • Ao criar o calendário, valide a query no Query Builder com um número pequeno de eventos de teste antes de publicar, garantindo que ela retorna os posts esperados.
  • Use um Listing Template dedicado aos eventos, criado a partir da mesma fonte consultada, e evite reaproveitar Listings de outros tipos de conteúdo.
  • Documente qual campo de data alimenta Group calendar cells by para que ajustes futuros no Meta Box não troquem ou esvaziem o campo sem querer.

Causa

  • A opção Group calendar cells by aponta para um campo de meta dado que está vazio nos posts: sem valor de data salvo no campo, o JetEngine não tem onde encaixar o item e a célula fica sem evento.
  • O campo de data usado no agrupamento está salvo em formato incompatível com o calendário, por exemplo um campo de data do JetEngine configurado para gravar como Unix timestamp enquanto o calendário espera Y-m-d, ou o inverso, fazendo o item não cair na célula correta.
  • A query que alimenta o Calendar (Query Builder do JetEngine ou a Default Query) não retorna os posts do tipo certo, por filtrar por outro post type, status diferente de publish ou um meta query que exclui os eventos.
  • O Listing Template selecionado no widget foi criado para outra fonte (outro CPT ou Custom Content Type) e não corresponde aos posts consultados, então nada é renderizado dentro da célula mesmo com itens na query.
  • Um campo de data repetidor ou dentro de Repeater foi indicado em Group calendar cells by, mas o calendário lê apenas um campo de data simples no nível do post, deixando os eventos sem dia atribuído.

Como resolver

  1. Confirme que o campo de data dos eventos está preenchido: Abra alguns posts de evento e verifique se o campo de meta dado usado para a data tem valor salvo. Se o campo estiver vazio, o calendário não tem como posicionar o item em nenhum dia. Preencha a data nos posts existentes antes de seguir.
    Painel WP -> abra um post de evento usado no calendário
    Confirme que o campo de data (ex.: event_date) tem um valor salvo e não está em branco
  2. Aponte Group calendar cells by para o campo de data correto: Edite o widget ou bloco JetEngine Calendar e, na opção Group calendar cells by, selecione exatamente o campo de meta dado que guarda a data do evento. Um campo errado ou genérico faz o calendário não agrupar os itens por dia.
    Edite a página -> selecione o widget JetEngine Calendar
    Em Group calendar cells by, escolha o campo de data do evento (ex.: event_date)
  3. Padronize o formato da data no campo do JetEngine: Em JetEngine, abra o Meta Box do campo de data e verifique a opção de salvar como timestamp. Mantenha o mesmo padrão em todos os posts: ou todos como Unix timestamp, ou todos no formato de data legível. Misturar formatos faz parte dos eventos não casar com a célula.
    Painel WP -> JetEngine -> Meta Boxes -> abra o Meta Box do evento
    No campo de data, confira a opção Save as timestamp e use o mesmo padrão em todos os posts
  4. Valide a query que alimenta o calendário: Garanta que a query devolve os posts certos. Se o Calendar usa o Query Builder do JetEngine, abra a query e confirme o post type, o status publish e qualquer filtro de meta query. Se usa a Default Query, confirme a fonte e o post type no próprio widget.
    Painel WP -> JetEngine -> Query Builder -> abra a query usada no calendário
    Confirme Post Type correto, status publish e remova filtros de data que cortem o mês exibido
  5. Use o Listing Template da mesma fonte dos eventos: No widget Calendar, selecione um Listing Template criado para o mesmo tipo de conteúdo que a query retorna. Um Listing de outra fonte não renderiza o item dentro da célula. Recrie o Listing apontando para o CPT ou Custom Content Type dos eventos se necessário.
    Painel WP -> JetEngine -> Listings -> confirme a fonte do Listing Template
    No widget Calendar, selecione o Listing Template da mesma fonte da query
PHP
<?php
/**
 * Diagnostico: lista os eventos e o valor do campo de data
 * que o JetEngine Calendar usa em "Group calendar cells by".
 * Rode logado como admin acrescentando ?full_check_calendar=1 na URL.
 */
add_action( 'init', 'full_jetengine_calendar_debug' );
function full_jetengine_calendar_debug() {
    if ( ! is_admin() || empty( $_GET['full_check_calendar'] ) || ! current_user_can( 'manage_options' ) ) {
        return;
    }

    $post_type = 'evento';   // ajuste para o CPT dos seus eventos
    $date_meta = 'event_date'; // ajuste para o campo usado no Group calendar cells by

    $eventos = get_posts( array(
        'post_type'      => $post_type,
        'post_status'    => 'publish',
        'posts_per_page' => -1,
    ) );

    foreach ( $eventos as $evento ) {
        $valor = get_post_meta( $evento->ID, $date_meta, true );
        $formato = is_numeric( $valor ) ? 'timestamp' : ( $valor ? 'texto/Y-m-d' : 'VAZIO' );
        error_log( sprintf(
            'Calendar debug: #%d "%s" | %s = "%s" (%s)',
            $evento->ID, $evento->post_title, $date_meta, $valor, $formato
        ) );
    }
}

Perguntas frequentes

Por que o JetEngine Calendar carrega a grade mas não mostra nenhum evento
Quase sempre o campo indicado em Group calendar cells by está vazio nos posts ou a query não retorna itens. Confirme que o campo de data dos eventos tem valor salvo e que a query devolve os posts do tipo e status corretos.
Qual configuração do widget posiciona o evento no dia certo
É a opção Group calendar cells by. Ela indica qual campo de meta dado guarda a data do evento. Aponte essa opção exatamente para o campo de data que você usa nos posts, senão o calendário não consegue encaixar o item em uma célula.
O formato da data do campo influencia se o evento aparece
Sim. Se o campo de data do JetEngine for salvo como Unix timestamp em alguns posts e como data legível em outros, o calendário não casa todos os itens com a célula. Padronize o mesmo formato de gravação em todos os posts de evento.
Por que todos os eventos caem no mesmo dia no calendário
Isso indica que o campo de data está com valor igual ou nulo em vários posts, ou que o agrupamento aponta para um campo que não é a data real do evento. Revise o campo escolhido em Group calendar cells by e os valores salvos nos posts.
Preciso usar o Query Builder do JetEngine para o calendário funcionar
Não obrigatoriamente. O Calendar pode usar a Default Query do próprio widget ou uma query do Query Builder. O essencial é que a fonte escolhida retorne os posts dos eventos com o status publish dentro do período exibido.
O Listing Template precisa ser do mesmo tipo de conteúdo dos eventos
Sim. O calendário renderiza cada item pelo Listing Template selecionado. Se o Listing foi criado para outra fonte, o conteúdo não aparece na célula. Use um Listing da mesma fonte que a query consulta.
Um campo de data dentro de um Repeater serve para agrupar o calendário
O calendário espera um campo de data simples no nível do post para agrupar as células. Datas dentro de um Repeater não são lidas no agrupamento. Use um campo de data direto no post do evento para o Group calendar cells by.

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