Como corrigir Dynamic Tags do Elementor que não exibem dados do ACF
O que é Dynamic Tags do Elementor que não exibem dados do ACF?
A Dynamic Tag ACF Field do Elementor Pro e a ponte que injeta o valor de um campo do Advanced Custom Fields dentro de um widget do Elementor (titulo, texto, imagem, botao), sem escrever código no tema. Você clica no icone de conteúdo dinamico do widget, escolhe a tag ACF Field e seleciona a chave do campo; o Elementor le aquele campo do post atual e renderiza o valor. Quando essa ligacao falha, o widget continua no layout mas sai vazio no editor e no frontend, porque o Elementor recebeu uma string vazia do ACF. O problema quase nunca e o widget: e o contexto entre o grupo de campos ACF, o post que esta sendo editado e o formato de retorno do campo.
Como identificar
- Ao clicar no icone de conteúdo dinamico do widget, a opção ACF Field nem aparece na lista de Dynamic Tags do Elementor.
- A Dynamic Tag ACF Field aparece, você seleciona o campo, mas o widget fica em branco no editor e no frontend.
- Um campo ACF de imagem mostra um icone de imagem quebrada ou nada, mesmo com a imagem preenchida no painel do post.
- O campo funciona numa página comum, mas some quando usado dentro de um Theme Builder (Single ou Archive) do Elementor.
- Os valores do ACF aparecem certos no frontend via the_field no tema, mas continuam vazios quando puxados pela Dynamic Tag do Elementor.
Como prevenir
- Defina o Return Format dos campos de imagem como Image URL e dos campos de link como Link URL desde a criação do campo, antes de usar no Elementor
- Crie a regra de local do grupo de campos ACF apontando para o mesmo tipo de post dos templates do Theme Builder que vao consumir o campo
- Mantenha o Elementor Pro com licenca ativa e teste a Dynamic Tag num post de exemplo preenchido antes de publicar o template
Causa
- Elementor Pro inativo ou licenca expirada: a funcionalidade Dynamic Tags so existe no Elementor Pro, entao no Elementor gratuito a tag ACF Field nunca aparece na lista de conteúdo dinamico.
- Regra de local (Location Rules) do grupo de campos ACF não casa com o tipo de post editado: o grupo esta restrito a Post Type igual a post e você edita uma page ou um template, entao o campo não existe para aquele conteúdo e a Dynamic Tag retorna vazio.
- Image Field do ACF configurado com Return Format igual a Image Array ou Image ID: o widget Image do Elementor espera uma URL, recebe um array ou um número e não consegue renderizar a imagem.
- Campo ACF sem valor salvo para o post específico que esta em edição: o grupo de campos casa, mas aquele post nunca teve o campo preenchido, entao o ACF devolve string vazia para a Dynamic Tag.
- Edição de um Theme Builder Single ou Archive em que a previa do Elementor aponta para um post sem o campo, ou o grupo de campos não esta atribuido ao mesmo tipo de post do template, fazendo o valor sumir so dentro do template.
- Campo criado numa Options Page do ACF e referenciado como campo de post comum: a Dynamic Tag ACF Field le o contexto do post atual e não a tabela de opções, retornando vazio.
Como resolver
- Confirme que o Elementor Pro esta ativo e licenciado: as Dynamic Tags são um recurso exclusivo do Elementor Pro. Verifique se o Pro esta instalado, ativado e com a licenca valida, porque so assim o icone de conteúdo dinamico oferece a tag ACF Field no widget.
WP Admin -> Plugins -> confirmar Elementor Pro ativado WP Admin -> Elementor -> Licença -> status Conectado/Ativo - Ajuste a regra de local do grupo de campos ACF: abra o grupo de campos no ACF e confira em Configurações de Local se a regra inclui o tipo de post (ou o template) que você esta editando no Elementor. Se a regra exigir um Post Type que não bate com o conteúdo atual, o campo nunca chega até a Dynamic Tag.
WP Admin -> ACF -> Grupos de campos -> abrir o grupo Configurações -> Local -> Mostrar este grupo de campos se: Tipo de post é igual a (post/page do template) - Corrija o Return Format do campo de imagem ou link: em campos de imagem, defina o formato de retorno como Image URL para o widget Image do Elementor conseguir renderizar; campos de imagem que retornam Array ou ID não são aceitos pela Dynamic Tag de imagem. Para links, use o formato Link URL.
WP Admin -> ACF -> Grupos de campos -> editar o campo de Imagem Formato de Retorno -> Image URL Campos de Link -> Formato de Retorno -> Link URL - Reselecione a Dynamic Tag e confirme o valor do campo: no widget, clique no icone de conteúdo dinamico, escolha ACF Field e selecione de novo a chave correta do campo, depois confira no painel do post que aquele campo realmente tem valor salvo. Campo vazio no post devolve vazio para a tag.
Selecione o widget -> icone de conteúdo dinâmico (cilindro) -> ACF Field -> escolher o campo Editar o post -> preencher o campo ACF -> Atualizar - Ajuste a previa do Theme Builder e regenere o CSS: se o problema so ocorre dentro de um template do Theme Builder, defina a Preview Settings do template para um post que tenha o campo preenchido e garanta que o grupo de campos esta atribuido ao tipo de post do template. Em seguida, regenere os arquivos do Elementor para limpar valores em cache.
Editor do template -> Configurações de Pré-visualização -> apontar para um post com o campo preenchido WP Admin -> Elementor -> Ferramentas -> Regenerar Arquivos e Dados
// functions.php do tema-filho — registra uma Dynamic Tag de fallback que entrega
// SEMPRE a URL de um campo de imagem do ACF, mesmo quando o Return Format esta como Array/ID.
// Util quando voce nao pode mudar o Return Format de campos ja em producao.
add_filter( 'acf/format_value/type=image', function ( $value, $post_id, $field ) {
if ( is_array( $value ) && ! empty( $value['url'] ) ) {
return $value['url']; // entrega a URL que o widget Image do Elementor espera
}
if ( is_numeric( $value ) ) {
return wp_get_attachment_url( $value ); // converte o ID em URL
}
return $value;
}, 20, 3 );
// Diagnostico rapido: confirme se o campo tem valor para o post atual.
// Troque 'meu_campo' pela chave real e veja o retorno no log de debug.
add_action( 'wp_footer', function () {
if ( is_singular() && current_user_can( 'manage_options' ) ) {
error_log( 'ACF meu_campo = ' . var_export( get_field( 'meu_campo', get_the_ID() ), true ) );
}
} );














