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

Como corrigir o JetEngine Relations que não conecta posts

Time Full Services Time Full Services
Tipo Page Builders
Nome do erro JetEngine Relations não conecta posts EN: JetEngine Relations not connecting posts
Severidade Grave
Descrição JetEngine Relations que não conecta posts quase sempre vem dos controles do objeto parent ou child desligados na relação, do post type não bater com o objeto escolhido, ou do post não ser salvo com Atualizar após a conexão. Ativar os controles e salvar resolve.

O que é JetEngine Relations que não conecta posts?

O recurso Relations do JetEngine cria vínculos entre dois objetos do WordPress, normalmente dois Custom Post Types definidos como Parent object e Child object na relação. Cada conexão é gravada numa tabela própria do banco (a tabela global de relações ou uma tabela separada por relação, dependendo do toggle Register separate DB table). Quando você abre o post e não consegue conectar itens, ou conecta mas a ligação some depois de salvar, o problema está na configuração da relação em JetEngine -> Relations, no objeto escolhido como parent ou child, ou no passo de salvar o post. A aba de conexão só aparece no editor quando o post type que você está editando é exatamente o objeto registrado como parent ou child naquela relação.

Como identificar

  • No editor do post não existe a aba ou seção ‘Children …’ no objeto parent (nem ‘Parent …’ no objeto child), então não há onde conectar itens.
  • A aba aparece, mas o botão ‘Add New …’ ou ‘Connect …’ está ausente ou desabilitado e nenhum item pode ser vinculado.
  • Você conecta um item e clica em Atualizar, mas ao recarregar o post a conexão desapareceu e a lista de relacionados volta vazia.
  • Ao salvar o post surge a mensagem de erro do tipo ‘at least one child is required’ ou ‘at least one parent is required’, travando a publicação.
  • O Listing Grid ou a query com a macro ‘Related items’ não retorna nada no frontend, mesmo com posts que deveriam estar conectados.

Como prevenir

  • Ao criar uma relação nova, já ligue ‘Register controls for parent object’ e ‘Register controls for child object’ antes de tentar conectar posts, para a aba de conexão nascer no editor.
  • Deixe ‘Require at least one child’ e ‘Require at least one parent’ desligados até a base de conexões estar populada, evitando travar o salvamento de posts antigos.
  • Sempre clique em Atualizar no post depois de conectar itens, porque o vínculo só é gravado na tabela de relações quando o WordPress salva o post.
  • Confira se o Parent object e o Child object da relação batem com os post types reais antes de cadastrar conteúdo, para não editar no post type errado.
  • Reserve funções com permissão de edição para quem vai gerenciar as relações, já que o painel de itens relacionados depende dos direitos do usuário.

Causa

  • O toggle 'Register controls for parent object' (ou 'Register controls for child object') está desligado na relação. Sem ele o JetEngine não registra a aba de conexão no editor do post type correspondente, então não há interface para conectar itens.
  • Os toggles 'Allow to create new children from parent' e 'Allow to create new parents from children' estão desligados, então o botão 'Add New ...' não aparece e só dá para conectar itens já existentes, nunca criar novos pela relação.
  • O Parent object ou o Child object da relação aponta para um post type diferente do que você está editando. A aba de conexão só é injetada no post type exatamente igual ao objeto registrado, então no post type errado nada aparece.
  • Você fez a conexão na aba mas não clicou em Atualizar no post. O JetEngine grava o vínculo na tabela de relações no momento em que o WordPress salva o post, e sem salvar a conexão é descartada.
  • O toggle 'Require at least one child' (ou 'Require at least one parent') está ligado e a relação exige um vínculo obrigatório que ainda não existe, então o WordPress bloqueia o salvamento e exibe a mensagem de erro.
  • O usuário logado não tem as permissões de função exigidas para editar itens relacionados (o painel do JetEngine só libera conectar, criar e excluir relacionados para funções com os direitos necessários).

Como resolver

  1. Abra a relação em JetEngine -> Relations e confira os objetos: No painel do WordPress abra a relação e confirme se o Parent object e o Child object apontam para os post types certos. A aba de conexão só nasce no post type igual ao objeto registrado, então um objeto trocado deixa o editor sem onde conectar.
    JetEngine -> Relations -> (clique em Edit na relação)
    Parent object: post type do item pai
    Child object: post type do item filho
  2. Ative os controles do parent e do child na relação: Nas General Settings da relação ligue os toggles que registram a interface de conexão no editor e permitem criar novos itens pela relação. Sem esses controles a aba de conexão não aparece e o botão de adicionar fica oculto.
    Register controls for parent object: On
    Register controls for child object: On
    Allow to create new children from parent: On
    Allow to create new parents from children: On
  3. Revise o vínculo obrigatório e salve a relação: Se a publicação trava com mensagem de item obrigatório, desligue o toggle de exigência enquanto popula as conexões. Depois de ajustar os toggles clique em Update Relation para gravar a configuração antes de voltar ao post.
    Require at least one child: Off
    Require at least one parent: Off
    Botão: Update Relation
  4. Conecte os itens na aba e salve o post: Abra um post do objeto parent, vá até a seção Children e use Add New ou Connect para vincular os itens. O JetEngine grava o vínculo na tabela de relações apenas quando o WordPress salva o post, então clique em Atualizar para persistir a conexão.
  5. Editor do post -> seção 'Children ...' -> Connect ...
    Botão: Atualizar (Update)
  6. Confirme a permissão do usuário e recarregue o post: Garanta que a função do usuário tem direito de editar itens relacionados, pois o painel só libera conectar e criar relacionados para funções com permissão. Recarregue o post e verifique se a conexão permaneceu na lista de relacionados.
    Usuários -> (perfil) -> Função: Administrador ou Editor com permissão
    Recarregue o editor do post e confira a lista de relacionados
PHP
add_action( 'init', function () {
    // Diagnostico: liste como o JetEngine registrou as relacoes.
    // Rode com WP_DEBUG_LOG ligado e confira o debug.log do site.
    if ( ! function_exists( 'jet_engine' ) ) {
        return;
    }
    $relations = jet_engine()->relations->get_active_relations();
    foreach ( (array) $relations as $rel ) {
        $args = is_object( $rel ) ? $rel->get_relation_args() : array();
        error_log( sprintf(
            'JetEngine relation #%s | parent: %s | child: %s | sep_table: %s',
            $args['id']           ?? '?',
            $args['parent_object'] ?? '?',
            $args['child_object']  ?? '?',
            ! empty( $args['db_table'] ) ? 'yes' : 'no'
        ) );
    }
}, 99 );

Perguntas frequentes

Por que a aba Children não aparece no meu post do JetEngine
A aba de conexão só é registrada quando o toggle 'Register controls for parent object' está ligado na relação e o post type que você edita é exatamente o objeto definido como parent. Abra JetEngine -> Relations, ative o controle do objeto, clique em Update Relation e confirme que o Parent object aponta para o post type certo.
Conecto os posts mas a relação some depois de salvar, o que houve
O JetEngine grava o vínculo na tabela de relações no momento em que o WordPress salva o post. Se você conectou na aba mas não clicou em Atualizar, a conexão é descartada. Faça a ligação e clique em Atualizar para persistir; ao recarregar o post o item relacionado deve continuar na lista.
O botão Add New não aparece na seção de relacionados
Esse botão depende dos toggles 'Allow to create new children from parent' e 'Allow to create new parents from children' na relação. Com eles desligados você só consegue conectar itens já existentes pelo botão Connect. Ative os dois em JetEngine -> Relations e clique em Update Relation para liberar a criação de novos itens.
Aparece um erro de item obrigatório ao publicar, como resolver
A relação está com 'Require at least one child' ou 'Require at least one parent' ligado e o post ainda não tem o vínculo exigido. Desligue o toggle de exigência enquanto popula as conexões, ou conecte ao menos um item antes de salvar. Depois de tudo ligado você pode reativar a exigência se quiser garantir o vínculo.
Qual a diferença entre tabela global e separada nas relações
Se o toggle 'Register separate DB table' estiver desligado, o JetEngine grava todas as conexões na tabela global de relações. Ligado, ele cria uma tabela dedicada só para aquela relação. Mudar esse toggle depois de já ter conexões pode deixar vínculos antigos numa tabela e os novos em outra, por isso defina antes de popular os dados.
Um editor não consegue conectar posts mas o admin consegue
A edição de itens relacionados é liberada só para funções com os direitos necessários no WordPress. Se o editor não vê os botões de conectar ou criar relacionados, revise a função e as permissões dele. Como teste, faça login com um administrador para confirmar que a relação em si está funcionando antes de ajustar a função.
O Listing Grid não mostra os posts relacionados no frontend
Primeiro confirme que as conexões estão salvas no editor do post. Depois revise a query: ela precisa usar a macro 'Related items' apontando para a relação certa, com o objeto correto em 'From Object' e o ID inicial vindo do objeto atual. Sem essa query bem montada o Listing Grid renderiza vazio mesmo com a conexão gravada.

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