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

Como corrigir o Clone Field que não duplica campos no ACF PRO

Time Full Services Time Full Services
Tipo Page Builders
Nome do erro Clone Field do ACF PRO não duplica os campos EN: ACF PRO Clone Field does not duplicate fields
Severidade Atenção
Descrição O Clone Field do ACF PRO não duplica campos quando dois clones do mesmo grupo compartilham o field_key, quando o Display está como Group sem prefixo de nome, ou quando o grupo clonado original está inativo, fazendo os campos sumirem ou não salvarem.

O que é Clone Field do ACF PRO?

O Clone Field do ACF PRO é um campo especial que carrega e exibe outros campos ou grupos de campos já existentes em tempo de execução, em vez de copiá-los no banco de dados. Segundo a documentação oficial do ACF, ele não duplica fisicamente os campos: ele aponta para os campos originais e os renderiza no formulário, funcionando como um módulo reutilizável. Por isso, se o grupo de origem muda ou fica inativo, o Clone reflete essa mudança na hora.

O comportamento de exibição depende da opção Display. No modo Seamless, o Clone é substituído pelos campos selecionados, ideal para reutilizar campos dentro de um Repeater ou Flexible Content. No modo Group, os campos aparecem agrupados sob um rótulo. Quando o Clone não duplica os campos como esperado, o problema costuma estar na configuração de Display, nas opções Prefix Field Names e Prefix Field Labels, ou em um conflito de field_key entre dois clones do mesmo grupo, todos descritos na documentação do ACF.

Como identificar

  • Os campos clonados não aparecem no formulário de edição do post quando o Clone Field é adicionado a um grupo, mesmo com o grupo de origem existindo.
  • O valor preenchido em um campo clonado não salva: ao recarregar o post o campo volta vazio.
  • Dois Clone Fields que apontam para o mesmo grupo salvam um por cima do outro e só o último mantém o valor.
  • A função get_field(‘nome_do_campo’) retorna vazio ou null no template, mesmo com o campo preenchido no editor.
  • A função have_rows() retorna false ao tentar iterar um campo clonado com Display em Group e layout em Block, e o loop não roda.
  • Os rótulos dos campos clonados ficam duplicados ou genéricos quando vários clones do mesmo grupo coexistem na mesma tela.
Antes de começar: Antes de reestruturar Clone Fields ou alterar nomes de campos em produção, faça backup do site (arquivos e banco de dados) ou teste em staging, pois renomear o name de um campo pode desvincular valores já salvos nos posts.

Como prevenir

  • Ative Prefix Field Names sempre que houver mais de um Clone do mesmo grupo na mesma tela, garantindo nomes únicos no banco de dados.
  • Padronize o uso de Seamless para clones dentro de Repeater e Flexible Content e reserve o Group para módulos exibidos sob um rótulo.
  • Documente, para cada Clone, qual nome usar no get_field conforme o Display e o prefixo, evitando templates que buscam o nome errado.
  • Não clone o mesmo subcampo duas vezes na mesma tela: clone grupos distintos para que os field_key não colidam ao salvar.

Causa

  • Dois Clone Fields clonam o mesmo subcampo e ambos herdam o field_key idêntico do original; como a documentação do ACF alerta, os subcampos clonados não salvam quando duplicados, pois um sobrescreve o valor do outro.
  • A opção Prefix Field Names está desligada nos clones do mesmo grupo: sem o prefixo, os campos clonados gravam sob o mesmo name e colidem ao salvar, em vez de gerar nomes distintos como hero_button_text e welcome_button_text.
  • O Display está em Group com layout Block dentro de um Repeater ou Flexible Content: nessa combinação a documentação do ACF afirma que have_rows() retorna false e o subloop do clone não executa.
  • O get_field no template usa o nome errado para o modo de Display escolhido: em Seamless sem prefixo é get_field('text'), enquanto em Group com Prefix Field Names é get_field('main_button_text') ou o grupo inteiro via get_field('main_button').
  • O grupo de campos de origem referenciado pelo Clone está com o status Active desativado ou foi renomeado, então o Clone não encontra os campos originais e exibe o formulário vazio.

Como resolver

  1. Ative o prefixo de nomes em clones do mesmo grupo: Quando dois Clone Fields apontam para o mesmo grupo, abra cada Clone em ACF, Grupos de Campos e marque a opção Prefix Field Names. Sem ela os clones gravam sob o mesmo name e um sobrescreve o outro ao salvar, segundo a documentação do ACF.
    Painel WP -> ACF -> Grupos de Campos -> abra o grupo com o Clone Field
    Edite o Clone Field e marque Prefix Field Names (Prefixar nomes dos campos)
    Defina um rótulo distinto por Clone (ex.: Hero, Welcome) para nomes únicos
  2. Escolha o Display correto para o contexto: Use Seamless para reutilizar campos dentro de Repeater ou Flexible Content, e Group para reaproveitar um grupo ou módulo como um conjunto. A documentação do ACF indica que have_rows() retorna false com Display em Group e layout Block, então prefira Seamless nesse cenário de subloop.
    Painel WP -> ACF -> Grupos de Campos -> abra o Clone Field
    No campo Display, selecione Seamless para subloops em Repeater/Flexible Content
    Use Group apenas quando precisar do conjunto sob um rótulo único
  3. Corrija o nome usado no get_field do template: Ajuste a chamada get_field ao modo de Display e ao prefixo configurado. Em Seamless sem prefixo o subcampo é acessado direto pelo nome original; em Group com Prefix Field Names use o nome prefixado ou recupere o grupo inteiro como array.
    Seamless sem prefixo: get_field('text')
    Group com Prefix Field Names: get_field('main_button_text')
    Grupo inteiro como array: get_field('main_button')
  4. Confirme que o grupo de origem está ativo: Abra o grupo de campos que o Clone referencia e garanta que ele está marcado como Active. Um grupo de origem inativo ou renomeado faz o Clone não encontrar os campos e exibir o formulário vazio.
    Painel WP -> ACF -> Grupos de Campos -> abra o grupo de origem
    Marque o status como Active (Ativo) e salve
    Reabra o post para confirmar que os campos clonados voltaram
  5. Evite clonar o mesmo subcampo duas vezes na mesma tela: Se ainda houver perda de dados, reestruture para não ter dois clones do mesmo subcampo na mesma tela, pois eles compartilham o field_key e colidem mesmo com prefixo. Clone grupos distintos ou crie cópias separadas dos campos quando precisar de valores independentes.
    Painel WP -> ACF -> Grupos de Campos -> revise os Clone Fields da tela
    Remova o segundo Clone que duplica o mesmo subcampo do original
    Crie campos próprios ou clone grupos diferentes para valores independentes
PHP
<?php
// Lê valores de um Clone Field conforme o modo de Display configurado no ACF PRO.

// Display = Seamless, SEM prefixo: o subcampo é acessado pelo nome original.
$texto = get_field( 'text' );

// Display = Group, COM Prefix Field Names (rótulo do Clone = 'Main'):
$texto_prefixado = get_field( 'main_button_text' );

// Recupera o grupo clonado inteiro como array (Display = Group):
$grupo = get_field( 'main_button' );
if ( $grupo ) {
    echo esc_html( $grupo['button_text'] );
    echo esc_url( $grupo['button_url'] );
}

Perguntas frequentes

Por que os campos do meu Clone Field do ACF PRO não salvam
Na maioria das vezes há dois clones do mesmo grupo sem Prefix Field Names, então eles gravam sob o mesmo nome e um sobrescreve o outro. Ative o Prefix Field Names em cada Clone para que cada um salve com um nome distinto.
O Clone Field do ACF duplica os campos no banco de dados
Não. Segundo a documentação oficial do ACF, o Clone Field carrega e exibe os campos selecionados em tempo de execução, sem copiá-los no banco. Ele aponta para os campos originais, por isso mudanças no grupo de origem refletem no Clone.
Qual a diferença entre Display Seamless e Group no Clone Field
No modo Seamless o Clone é substituído pelos campos selecionados, ideal para Repeater e Flexible Content. No modo Group os campos aparecem agrupados sob um rótulo, útil para reaproveitar um módulo inteiro como conjunto.
Por que have_rows() retorna false no meu Clone Field
A documentação do ACF aponta que have_rows() retorna false ao carregar um subcampo clonado com Display em Group e layout em Block. Troque o Display para Seamless nesse cenário para que o subloop funcione corretamente.
Como acesso um campo clonado no template com get_field
Depende do Display e do prefixo. Em Seamless sem prefixo use get_field com o nome original do subcampo; em Group com Prefix Field Names use o nome prefixado ou recupere o grupo inteiro como array com o nome do Clone.
Posso ter dois Clone Fields do mesmo grupo na mesma página
Pode, desde que ative Prefix Field Names em cada um para gerar nomes distintos. A documentação alerta que subcampos clonados duplicados compartilham o field_key e podem colidir, então evite clonar o mesmo subcampo duas vezes na mesma tela.
O que é Prefix Field Names no Clone Field do ACF
É a opção que altera o name usado para salvar e carregar os valores dos campos clonados. Com ela, clones do mesmo grupo salvam com nomes diferentes, como hero_button_text e welcome_button_text, evitando que um sobrescreva o outro.

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