Como corrigir o erro de Dynamic Content do ACF PRO no Elementor
O que é o erro de dynamic content do ACF no Elementor?
O Dynamic Content do ACF no Elementor é o recurso que conecta um campo do Advanced Custom Fields a um widget do Elementor sem escrever código, usando o sistema de Dynamic Tags. Em vez de digitar o texto direto no widget, você clica no ícone de discos empilhados (conteúdo dinâmico), escolhe a fonte ACF Field e seleciona a chave do campo. O Elementor então busca o valor daquele campo no post atual e renderiza no lugar do conteúdo estático. O recurso de Dynamic Tags só existe no Elementor PRO; o ACF gratuito ou o ACF PRO fornecem os campos.
O erro acontece em duas frentes. Na primeira, o campo simplesmente não aparece na lista de campos do ACF Field dentro do seletor de Dynamic Tags, então não há o que conectar. Na segunda, o campo aparece e é selecionado, mas o widget renderiza vazio na página, porque o valor não pertence ao post exibido ou o tipo de campo não é suportado pela ponte nativa do Elementor com o ACF.
Como identificar
- Ao clicar no ícone de conteúdo dinâmico do widget, a opção ACF Field não lista o campo desejado, mesmo com o grupo de campos publicado.
- O campo é selecionado em Dynamic Tags, mas o widget renderiza um espaço em branco no preview e no frontend.
- O ícone de discos empilhados (conteúdo dinâmico) nem aparece nas configurações do widget, indicando que o Elementor PRO não está ativo.
- Campos do tipo Repeater ou Flexible Content não exibem subcampos na lista de ACF Field, ou trazem só o rótulo do grupo sem valor.
- Um campo Link ou URL conectado a um widget de Texto sai vazio, enquanto o mesmo campo funciona em um widget de Botão.
- O valor aparece no editor do post no admin, mas some quando a página é renderizada pelo template do Theme Builder do Elementor.
Como prevenir
- Mantenha Elementor PRO e ACF atualizados na mesma janela de manutenção, já que a ponte de Dynamic Tags depende das duas versões compatíveis.
- Antes de montar o template, confirme as Location Rules do grupo de campos e as Display Conditions do Theme Builder apontando para o mesmo post type.
- Documente quais tipos de campo do projeto não são suportados pela Dynamic Tag nativa, como Repeater, e padronize o uso de Post Custom Field ou shortcode para eles.
- Valide cada novo campo em um post de teste antes de publicar, conferindo se aparece na lista de ACF Field e renderiza valor no preview do Elementor.
Causa
- O Elementor PRO não está instalado ou ativo: o recurso de Dynamic Tags que expõe a fonte ACF Field é exclusivo da versão PRO, então o ícone de conteúdo dinâmico nem é exibido no widget.
- O campo é de um tipo não suportado pela ponte nativa, como Repeater, e por isso não aparece na lista do seletor ACF Field; a integração cobre Text, Image, Link, Gallery, Select, Date Picker, User e similares, mas não o Repeater direto.
- O widget escolhido é incompatível com o tipo do campo: um campo Link ou URL aplicado a um widget de Texto sai vazio, porque esse widget espera string simples e não a estrutura de array do campo Link.
- O nome digitado em Key no Post Custom Field não bate com a meta key real gravada pelo ACF, que é o Field Name em minúsculas com underscore, e não o rótulo amigável do campo.
- As Location Rules do grupo de campos apontam para outro post type ou template, então o campo não é atribuído ao post renderizado pelo template do Theme Builder e a Dynamic Tag devolve vazio.
- O template do Theme Builder está aplicado a um contexto diferente do post que tem o valor, por exemplo um arquetipo de arquivo em vez de Single, fazendo o Elementor buscar o campo em um objeto que não o possui.
Como resolver
- Confirme que o Elementor PRO está ativo: O recurso de Dynamic Tags só existe no Elementor PRO. Em Plugins, verifique se o Elementor PRO está instalado e ativo, além do Elementor base. Sem ele, o ícone de conteúdo dinâmico não aparece e nenhuma fonte ACF Field fica disponível no widget.
Plugins -> Plugins Instalados -> Elementor Pro: Ativo - Conecte o widget pela fonte ACF Field: Selecione o widget, abra a aba Content e clique no ícone de discos empilhados ao lado do campo de texto. No seletor de Dynamic Tags, escolha ACF Field e selecione o campo na lista. Use a aba Advanced para definir um texto de fallback caso o campo esteja vazio em algum post.
Widget -> Content -> ícone de conteúdo dinâmico -> ACF Field -> selecionar campo - Use Post Custom Field quando o campo não aparece na lista: Se o campo não está na lista de ACF Field, no mesmo seletor escolha Post Custom Field e digite manualmente a meta key exata. A meta key é o Field Name do campo em minúsculas com underscore, visível na coluna do meio do grupo de campos em Custom Fields. Esse caminho contorna campos que a ponte nativa do ACF Field não expõe.
Dynamic Tags -> Post Custom Field -> Key: preco_promocional - Combine o widget ao tipo do campo: Aplique cada tipo de campo ao widget compatível. Um campo Image vai no widget Image, um campo Link vai no atributo de link de um Botão, e texto simples vai no widget Texto ou Cabeçalho. Conectar um campo Link a um widget de Texto resulta em saída vazia porque o widget não interpreta o array do campo.
Campo Image -> widget Image | Campo Link -> Botão (URL) | Campo Text -> Texto - Alinhe Location Rules e Display Conditions ao post: Em Custom Fields, edite o grupo e confirme que as Location Rules incluem o post type ou template do post exibido. No Theme Builder, abra o template e ajuste as Display Conditions para Singular do mesmo post type. Assim o campo é atribuído ao objeto que o Elementor renderiza e a Dynamic Tag encontra o valor.
Custom Fields -> grupo -> Settings -> Location: Post Type igual a (seu CPT) Theme Builder -> template -> Display Conditions: Singular -> (seu CPT) - Exiba Repeater com um shortcode próprio: Como o Repeater não é suportado direto pelo ACF Field do Elementor, registre um shortcode que percorra as linhas com have_rows e o insira em um widget Shortcode. Isso entrega o conteúdo do Repeater dentro do layout do Elementor sem depender da Dynamic Tag nativa.
Widget Shortcode -> [meu_repeater_acf]
<?php
// Shortcode para exibir um campo Repeater do ACF dentro do Elementor.
// O Repeater nao aparece na Dynamic Tag nativa, entao use este shortcode
// em um widget Shortcode. Coloque no functions.php do tema filho.
add_shortcode( 'meu_repeater_acf', function () {
if ( ! function_exists( 'have_rows' ) || ! have_rows( 'lista_servicos' ) ) {
return '';
}
$saida = '<ul class="acf-repeater">';
while ( have_rows( 'lista_servicos' ) ) {
the_row();
$titulo = get_sub_field( 'titulo_servico' );
$preco = get_sub_field( 'preco_servico' );
if ( $titulo ) {
$saida .= '<li>' . esc_html( $titulo );
if ( $preco ) {
$saida .= ' - ' . esc_html( $preco );
}
$saida .= '</li>';
}
}
$saida .= '</ul>';
return $saida;
} );
?>














