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

Como corrigir a duplicacao incorreta do Clone Field no ACF PRO

Time Full Services Time Full Services
Tipo Page Builders
Nome do erro Clone Field duplicando campos de forma incorreta EN: ACF Clone Field not saving duplicated sub field values
Severidade Atenção
Descrição O ACF Clone Field não funciona corretamente quando duas instancias clonadas do mesmo grupo compartilham a mesma field_key e se sobrescrevem ao salvar. A correção oficial e usar Prefix Field Names com o modo de exibicao Group para dar nomes unicos a cada copia.

O que é duplicacao incorreta do Clone Field no ACF PRO?

O ACF Clone Field permite reaproveitar campos já existentes sem recriar entradas no banco: ele carrega e exibe os campos selecionados em tempo de execução, transformando um grupo de campos em um módulo reutilizavel. Você escolhe se a copia aparece como um bloco agrupado (Display Group) ou substituindo o próprio Clone pelos campos selecionados (Display Seamless), e pode prefixar tanto os rotulos quanto os nomes dos campos clonados.

A duplicacao incorreta acontece quando o mesmo campo e clonado mais de uma vez no mesmo grupo sem prefixo de nome. Como cada subcampo clonado mantem a field_key original, segundo a documentação oficial do ACF as duas copias compartilham a mesma chave e uma sobrescreve a outra ao salvar, mesmo que os nomes pareçam diferentes na tela. O resultado e um campo que duplica visualmente mas perde dados, mostra valores trocados entre as copias ou retorna vazio no get_field.

Como identificar

  • Ao salvar um post com duas copias do mesmo grupo clonado, apenas uma guarda o valor e a outra volta em branco.
  • Os valores aparecem trocados entre as duas instancias do Clone Field depois de salvar e recarregar a tela.
  • A documentação do ACF descreve exatamente o sintoma: ‘A cloned sub field may not be able to save its value if it exists alongside another instance of itself’.
  • O get_field ou get_sub_field do campo clonado retorna vazio ou o valor da outra copia no frontend.
  • Dois grupos clonados com o mesmo nome de campo passam a ler e gravar do mesmo registro no banco, em vez de manter dados separados.
Antes de começar: Antes de alterar Prefix Field Names ou o modo de exibicao de um Clone Field em producao, faça backup do site (arquivos e banco de dados) ou teste em staging. Mudar o nome dos campos altera as meta_keys salvas e pode deixar dados antigos orfaos, exigindo remapeamento.

Como prevenir

  • Sempre que clonar o mesmo grupo mais de uma vez no mesmo post, ative Prefix Field Names para gerar nomes unicos por copia e evitar sobrescrita.
  • Padronize a combinacao Prefix Field Names com Display Group e reserve o Seamless sem prefixo para uso único dentro de Repeater ou Flexible Content.
  • Mantenha uma convencao de nomes de campos por grupo, evitando reaproveitar o mesmo Field Name em grupos diferentes que possam ser clonados juntos.
  • Antes de publicar um layout novo, teste o salvamento com valores distintos em cada copia clonada para flagrar conflito de field_key antes de ir ao ar.

Causa

  • Duas instancias do mesmo subcampo clonado coexistem no mesmo grupo e compartilham a field_key original; conforme a doc oficial, elas se sobrescrevem ao salvar mesmo com nomes prefixados diferentes.
  • A opção Prefix Field Names esta desligada no Clone Field, entao as copias salvam e carregam usando o mesmo nome de campo do grupo de origem, gerando conflito de dados.
  • O Clone Field foi configurado com Display Seamless e ao mesmo tempo com Prefix Field Names, combinacao que a doc desaconselha porque o prefixo so e coerente no modo Group.
  • Um campo foi clonado para dentro de um grupo que já possui um campo com o mesmo nome (por exemplo, clonar um campo 'título' em um grupo que já tem 'título'), criando conflito de dados na gravacao.
  • O mesmo grupo de campos e clonado em mais de um lugar do mesmo post (por exemplo, duas vezes na mesma página) sem prefixo, fazendo as duas copias apontarem para a mesma meta_key no banco.

Como resolver

  1. Ative Prefix Field Names no Clone Field: Abra o grupo de campos, edite o Clone Field e ligue a opção Prefix Field Names. Isso muda o nome real usado para salvar e carregar cada copia, permitindo clonar o mesmo grupo várias vezes com nomes distintos e impedindo que uma copia sobrescreva a outra.
    Painel WP -> ACF -> Grupos de Campos -> abra o grupo
    Edite o campo do tipo Clone
    Marque a opção 'Prefix Field Names'
  2. Use Display Group em vez de Seamless: Ainda no Clone Field, ajuste a opção Display para Group. A documentação recomenda a combinacao Prefix Field Names com Group e desaconselha prefixar no modo Seamless, porque o prefixo so produz nomes coerentes quando os campos ficam agrupados.
    No mesmo Clone Field, localize a opção 'Display'
    Selecione 'Group' (em vez de 'Seamless')
  3. Garanta nomes unicos entre o grupo de origem e o destino: Verifique se algum campo clonado tem o mesmo nome de um campo já presente no grupo de destino. Conforme a doc, clonar um campo com nome já usado no grupo cria conflito de dados. Renomeie o campo ou confie no prefixo para diferenciar.
    Liste os nomes (Field Name) dos campos do grupo de destino
    Compare com os nomes dos campos clonados
    Renomeie ou prefixe os que colidirem
  4. Atualize a leitura no código do tema: Com o prefixo ativo, o nome do campo no frontend passa a incluir o prefixo do Clone. Ajuste as chamadas get_field para usar o novo nome prefixado, senao a leitura retorna vazio mesmo com o dado salvo corretamente.
    Localize as chamadas get_field do campo clonado no tema
    Troque o nome antigo pelo nome com prefixo (ex.: hero_button_text)
  5. Reabra o post e revalide o salvamento: Depois de ajustar o Clone Field, edite um post que usa as duas copias, preencha valores diferentes em cada uma, salve e recarregue. Os dados devem permanecer separados e não mais se sobrescrever.
    Edite um post que usa as duas copias do Clone
    Preencha valores distintos em cada copia e salve
    Recarregue e confirme que cada copia manteve seu valor
PHP
<?php
// Le um Clone Field com Display Group + Prefix Field Names ativos.
// Cada copia salva sob seu proprio prefixo, evitando sobrescrita.
$hero = get_field( 'hero' ); // grupo clonado e prefixado
if ( $hero ) {
    echo esc_html( $hero['button_text'] ); // hero_button_text no banco
    echo esc_url( $hero['button_url'] );    // hero_button_url no banco
}

// Segunda copia do mesmo grupo, com outro prefixo, sem conflito de chave.
$welcome = get_field( 'welcome' );
if ( $welcome ) {
    echo esc_html( $welcome['button_text'] ); // welcome_button_text no banco
}

Perguntas frequentes

Por que meu Clone Field do ACF perde o valor ao salvar
Porque duas copias do mesmo campo clonado compartilham a mesma field_key e se sobrescrevem ao salvar, conforme a documentação do ACF. Ative Prefix Field Names no Clone Field para que cada copia salve com um nome único e os dados deixem de se sobrepor.
O que faz a opção Prefix Field Names no Clone Field
Ela altera o nome real usado para salvar e carregar os dados dos campos clonados, prefixando com o nome do Clone. Assim e possível clonar o mesmo grupo várias vezes com nomes distintos, como hero_button_text e welcome_button_text, sem conflito.
Qual a diferenca entre Display Group e Display Seamless no Clone
O Group exibe os campos clonados como um subgrupo nomeado, ideal para reutilizar módulos com prefixo. O Seamless substitui o próprio Clone pelos campos selecionados e funciona bem dentro de Repeater ou Flexible Content, mas sem prefixar.
Posso clonar o mesmo grupo duas vezes no mesmo post
Pode, desde que use Prefix Field Names com Display Group. Sem prefixo, as duas copias apontam para a mesma chave de campo e uma sobrescreve a outra, que e a causa da duplicacao incorreta.
Por que o get_field retorna vazio depois de ativar o prefixo
Porque o prefixo muda o nome do campo no frontend. Você precisa atualizar as chamadas get_field para o novo nome prefixado do Clone, senao a função procura por um nome que não existe mais e retorna vazio.
Clonar um campo com nome já usado no grupo causa problema
Sim. A documentação do ACF avisa que e possível criar conflito de dados ao clonar um campo com um nome já usado no grupo de destino. Renomeie o campo ou ative o prefixo para diferenciar as chaves.
Devo usar prefixo no Display Seamless
Não. A doc recomenda combinar Prefix Field Names apenas com Display Group e evitar prefixo no Seamless, porque no modo Seamless os campos substituem o Clone e o prefixo não gera nomes coerentes.
Mudar o prefixo de um Clone já em producao perde dados
Os dados antigos não somem, mas ficam orfaos sob a meta_key antiga porque o nome do campo muda. Faça backup, planeje o remapeamento dos valores existentes e teste em staging antes de alterar o prefixo em producao.

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