Como corrigir a Conditional Logic que não funciona no ACF PRO
Perguntas frequentes
Por que a Conditional Logic do ACF PRO não esconde o campo?
Na maioria dos casos o JavaScript de input do ACF não carregou na tela ou o campo de gatilho não devolve um valor comparável. A lógica condicional roda no navegador e avalia a regra ao vivo. Sem o script, ou usando Repeater e Group como gatilho, a condição nunca é satisfeita e o campo fica preso, sempre visível ou sempre oculto.
Quais campos podem ser usados como gatilho da lógica condicional?
Campos que guardam uma escolha clara funcionam bem como gatilho: Select, Radio, Checkbox, True/False e Button Group. Campos que não retornam um valor único, como Repeater, Group, Tab, Accordion e Mensagem, não servem de gatilho porque a condição não tem um valor para comparar. Campos como Imagem só aceitam as condições tem valor e não tem valor.
A lógica condicional do ACF funciona no frontend com acf_form()?
Funciona, desde que os assets do ACF sejam carregados na página. Chame acf_form_head() no topo do template antes de qualquer HTML e garanta que os scripts do ACF estejam enfileirados. Sem o JavaScript de input do ACF na página do frontend, as regras não avaliam e os campos não escondem nem aparecem como no wp-admin.
A Conditional Logic impede que o campo oculto seja salvo?
Não. A lógica condicional é uma camada visual do editor: ela mostra ou esconde o campo enquanto você preenche, mas não apaga nem bloqueia o valor já salvo. Por isso, no template do site você precisa checar o campo de controle antes de imprimir o campo dependente, senão pode exibir dado de um campo que deveria estar escondido.
Configurei a regra mas o campo aparece sempre. O que verificar?
Confira se a condição compara com o value salvo do campo de controle e não com o rótulo exibido, pois em Select e Radio o value costuma diferir do texto visível. Verifique também se a regra não ficou contraditória, como exigir um True/False marcado e desmarcado ao mesmo tempo com AND, situação que nunca é verdadeira e deixa o campo preso.
Aparece o erro acf is not defined no console. Tem relação?
Tem relação direta. Esse erro indica que o script de input do ACF não carregou, normalmente porque um plugin de otimização adiou, combinou ou removeu o JavaScript. Sem esse script, a lógica condicional não tem o motor que a avalia. Exclua os scripts do ACF da minificação e do adiamento e o erro tende a desaparecer.
Registrei o field group por código e a regra não funciona. Por quê?
Ao usar acf_add_local_field_group(), a conditional_logic precisa apontar para a chave field_xxxx do campo de controle, não para o nome do campo. O ACF identifica o campo da regra pela chave, então com o nome a regra fica sem alvo válido e não dispara. Copie a chave exata do campo de controle e use-a na regra.














