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

Como corrigir o Gallery Field do ACF PRO quando o lightbox não funciona

Time Full Services Time Full Services
Tipo Page Builders
Nome do erro Lightbox do Gallery Field do ACF PRO não funciona EN: ACF PRO Gallery Field lightbox not working
Severidade Atenção
Descrição O lightbox do Gallery Field do ACF PRO não funciona porque o ACF não inclui lightbox próprio: ele só entrega os dados das imagens, e o efeito de ampliar ao clicar depende de o seu template renderizar o link para a imagem cheia com o atributo que a biblioteca de lightbox do tema ou plugin reconhece.

O que é lightbox do Gallery Field do ACF PRO?

O Gallery Field do ACF PRO é um campo que armazena uma coleção de imagens da Biblioteca de Mídia e, ao ser consultado no template com get_field, devolve um array de anexos conforme o formato de retorno configurado (Array, URL ou ID). Cada item em formato Array traz subcampos como url, sizes, alt e caption. Segundo a documentação oficial do ACF, o campo cuida apenas dos dados e do gerenciamento das imagens no painel; ele não inclui nenhuma funcionalidade de lightbox no frontend.

O lightbox do Gallery Field do ACF PRO depende, portanto, de uma biblioteca externa de lightbox que vem do tema ou de outro plugin (por exemplo, o lightbox de um page builder, um plugin de galeria ou uma lib como a do bloco nativo de imagem). Essa biblioteca só amplia a imagem ao clique quando o HTML renderizado pelo seu loop expõe um link para o arquivo original e, em muitos casos, uma classe ou atributo que ela escuta. Quando o template do desenvolvedor imprime apenas a tag img sem esse link, ou quando um plugin de lazy load reescreve a marcação antes da lib inicializar, o clique não amplia nada e o lightbox parece quebrado.

Como identificar

  • Ao clicar em uma imagem do Gallery Field, nada acontece: a imagem não amplia e nenhuma janela de lightbox abre.
  • O clique abre o arquivo da imagem em uma aba ou página em branco, em vez de exibir o overlay do lightbox.
  • O lightbox funciona nas galerias nativas do tema ou do page builder, mas não nas imagens renderizadas pelo Gallery Field do ACF.
  • No console do navegador aparece um aviso de seletor não encontrado ou a biblioteca de lightbox não registra nenhum item para inicializar.
  • As imagens do ACF aparecem com o atributo data-src de lazy load e sem o link para o arquivo original, então a lib de lightbox não tem o que abrir.
Antes de começar: Antes de editar o template do tema ou mexer no plugin de lazy load em produção, faça um backup do site (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para poder reverter caso a renderização da galeria quebre.

Como prevenir

  • Padronize um template part reutilizável para galerias do ACF que sempre envolva a miniatura em um link para a imagem cheia com a classe correta do lightbox.
  • Documente qual biblioteca de lightbox o site usa e qual classe ou atributo data ela exige, para que todo novo template já saia compatível.
  • Mantenha o Gallery Field sempre com formato de retorno Array ou URL nos grupos de campos, evitando o formato ID que dificulta montar o link da imagem original.
  • Ao configurar lazy load ou otimização, valide as galerias do ACF em staging para garantir que a reescrita de markup não quebre a inicialização do lightbox.

Causa

  • O template imprime apenas a tag img do Gallery Field sem envolvê-la em um link para a imagem em tamanho cheio; sem esse href para o arquivo original, a biblioteca de lightbox não tem o alvo para ampliar.
  • O loop usa o subcampo de miniatura (image['sizes']['thumbnail']) tanto na img quanto no link, então o lightbox abre a versão pequena e o efeito parece não funcionar em vez de exibir a imagem cheia.
  • A biblioteca de lightbox do tema ou plugin escuta uma classe ou atributo data específico (por exemplo data-fancybox ou uma classe de galeria) que o HTML manual do ACF não inclui, então ela ignora os links e não inicializa nenhum item.
  • Um plugin de lazy load ou otimização (como o WP Rocket) reescreve o atributo src para data-src e adia o carregamento, e a lib de lightbox lê o markup antes da troca, encontrando imagens sem o caminho original para abrir.
  • O formato de retorno do campo está como ID em vez de Array ou URL, então o template recebe só números de anexo e o desenvolvedor não consegue montar o href para o arquivo original que o lightbox precisa.

Como resolver

  1. Confirme o formato de retorno do Gallery Field: Em ACF, abra o grupo de campos e o Gallery Field e confirme que o formato de retorno é Array ou URL, não ID. O formato Array entrega url, sizes, alt e caption, que você precisa para montar a miniatura e o link da imagem cheia que o lightbox vai abrir.
    Painel WP -> ACF -> Grupos de Campos -> abra o grupo
    Abra o Gallery Field e ajuste 'Formato de Retorno' para Array (ou URL)
  2. Renderize cada imagem dentro de um link para o arquivo cheio: No template, percorra o array do get_field e, para cada imagem, gere um link (a) cujo href aponta para o url da imagem original e, dentro dele, a miniatura. Sem esse link para o arquivo cheio o lightbox não tem o que ampliar, pois o ACF não fornece lightbox próprio segundo a documentação oficial.
    Edite o arquivo de template do tema (ex.: single.php ou um template part)
    Use get_field('galeria') e percorra o array de imagens
    Em cada item, monte um link a com href no url da imagem cheia e a miniatura dentro dele
  3. Adicione a classe ou o atributo que o seu lightbox escuta: Descubra qual seletor a biblioteca de lightbox do tema ou plugin usa para se ativar e inclua essa classe ou atributo data no link de cada imagem. Sem o seletor correto a lib ignora os links do ACF e não abre nada ao clique.
    Verifique na doc do tema/plugin de lightbox qual classe ou data-atributo ele exige
    Adicione esse seletor ao link de cada imagem (ex.: class ou data-* no elemento a)
    Use o mesmo identificador de grupo nos links para a galeria navegar entre imagens
  4. Trate o lazy load que reescreve o markup: Se um plugin de lazy load ou otimização troca o src por data-src antes do lightbox inicializar, exclua as imagens do Gallery Field do lazy load ou garanta que o link (href) para o arquivo cheio não seja afetado, pois o lightbox abre o href, não o src.
    No plugin de cache/otimização, exclua as imagens da galeria do lazy load
    Confirme que o href do link aponta para o arquivo original e não para data-src
    Limpe o cache e recarregue a página para testar o clique
  5. Isole conflito de JavaScript e reteste: Se o lightbox ainda não abre, abra o console do navegador para ver se a biblioteca carregou e se encontrou os itens, e desative outros plugins um a um para identificar um conflito de JavaScript que impeça a lib de inicializar sobre o markup do ACF.
    Abra o console (F12 -> Console) e recarregue a página com a galeria
    Verifique se a lib de lightbox carregou e quantos itens ela registrou
    Desative os demais plugins um a um, recarregando a cada teste, até achar o conflito
PHP
<?php
// Renderiza o Gallery Field do ACF com link para a imagem cheia + classe de lightbox.
$imagens = get_field( 'galeria' ); // Formato de retorno: Array
if ( $imagens ) : ?>
    <div class="acf-galeria">
        <?php foreach ( $imagens as $imagem ) :
            $cheia = esc_url( $imagem['url'] );
            $thumb = esc_url( $imagem['sizes']['medium'] );
            $alt   = esc_attr( $imagem['alt'] ); ?>
            <a href="<?php echo $cheia; ?>"
               class="lightbox"
               data-fancybox="galeria-acf">
                <img src="<?php echo $thumb; ?>" alt="<?php echo $alt; ?>">
            </a>
        <?php endforeach; ?>
    </div>
<?php endif;

Perguntas frequentes

O ACF PRO tem lightbox próprio para o Gallery Field
Não. A documentação oficial do ACF deixa claro que o Gallery Field cuida apenas dos dados e do gerenciamento das imagens; ele não inclui lightbox no frontend. O efeito de ampliar ao clicar vem de uma biblioteca do tema ou de outro plugin que você aplica ao markup renderizado.
Por que clicar na imagem do ACF Gallery não amplia nada
Em geral o template imprime só a tag img sem um link para o arquivo cheio, então a biblioteca de lightbox não tem o que abrir. Envolva cada imagem em um link cujo href aponta para a url da imagem original e adicione a classe que o lightbox escuta.
Como faço o link para a imagem em tamanho cheio no Gallery Field
Use o formato de retorno Array no campo e, no loop, pegue o subcampo url de cada imagem para o href do link e um tamanho menor de sizes para a miniatura. Assim o lightbox abre o arquivo original enquanto a página exibe a versão reduzida.
O WP Rocket ou o lazy load podem quebrar o lightbox da galeria
Sim. Plugins de lazy load reescrevem o src da imagem para data-src e adiam o carregamento, e a lib de lightbox pode ler o markup antes da troca. Exclua as imagens da galeria do lazy load ou garanta que o href do link para o arquivo cheio não seja afetado.
Qual formato de retorno devo usar no Gallery Field para o lightbox
Use Array ou URL. O formato Array entrega url, sizes, alt e caption de cada imagem, o que permite montar a miniatura e o link da imagem cheia. O formato ID devolve apenas números de anexo e dificulta gerar o href que o lightbox precisa.
Como sei qual classe o meu lightbox espera nos links
Consulte a documentação do tema ou do plugin de lightbox que você usa; cada um escuta uma classe ou um atributo data específico, como uma classe de galeria ou um data-atributo. Adicione esse seletor ao link de cada imagem do ACF para a lib inicializar.
O lightbox funciona em outras galerias mas não na do ACF, por quê
Porque as outras galerias já saem com o markup que a lib espera, e a do ACF é renderizada manualmente pelo seu template. Replique no loop do ACF a mesma estrutura de link e classe das galerias que funcionam para o lightbox reconhecer as imagens.

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