---
title: "Como corrigir a Conditional Logic que não funciona no ACF PRO"
url: https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/
date: 2026-06-17
author: "Clayton Margiotti"
---

# Como corrigir a Conditional Logic que não funciona no ACF PRO

## O que é a Conditional Logic do ACF PRO que não funciona?

A Conditional Logic do ACF PRO é a regra que mostra ou esconde um campo dentro do mesmo grupo de campos conforme o valor de outro campo, usando condições como igual a, diferente de, tem valor ou não tem valor. Segundo a documentação do ACF, ela permite definir regras sobre quando um campo deve aparecer com base nos valores de outros campos do mesmo field group. Essa lógica roda no navegador, via o script de input do próprio ACF que é carregado na tela de edição. Quando você muda o valor do campo de controle, o JavaScript do ACF avalia a regra na hora e exibe ou oculta o campo dependente, sem recarregar a página. Por isso a lógica condicional é, na prática, uma camada visual do editor: ela decide o que o usuário vê enquanto preenche, mas não apaga nem bloqueia o dado de um campo que ficou oculto. Se o script não carrega, se o campo de controle não devolve um valor comparável ou se a regra aponta para o campo errado, a condição nunca é satisfeita e o campo dependente fica preso, sempre visível ou sempre escondido.

## Como identificar

- Você seleciona o valor que deveria revelar um campo dependente e nada acontece: o campo continua oculto, ou aparece sempre, ignorando a regra que você configurou no grupo de campos.

- A lógica condicional funciona ao criar a regra no editor do field group, mas para de funcionar na tela de edição do post, onde os campos não reagem ao mudar o campo de controle.

- No console do navegador aparece um erro de JavaScript como "acf is not defined" ou "Uncaught TypeError" logo ao abrir a tela com os campos, sinal de que o script de input do ACF não carregou.

- Em um formulário no frontend criado com acf_form(), os campos não escondem nem aparecem conforme a regra, embora a mesma lógica funcione normalmente dentro do wp-admin.

- O campo some no editor por causa da regra, mas o valor antigo continua sendo exibido no template do site, mostrando que a lógica condicional não removeu o dado salvo.

- Você usa um Repeater, um Group, uma Tab ou um campo Mensagem como gatilho e a condição nunca dispara, porque esses campos não retornam um valor único para comparar.

## Como prevenir

- Use sempre campos de escolha (Select, Radio, Checkbox, True/False ou Button Group) como gatilho da lógica condicional, pois eles retornam um valor único e comparável.

- Ao registrar field groups por código, aponte a conditional_logic para a chave field_xxxx do campo de controle, nunca para o nome do campo.

- Mantenha os scripts do ACF fora das regras de minificação e de adiamento de JavaScript dos plugins de performance, para a lógica condicional sempre carregar na tela de edição.

- No template do site, valide o campo de controle antes de exibir o campo dependente, já que a lógica condicional não remove o dado salvo, apenas oculta o campo no editor.

Erros relacionados

- [Como corrigir Custom Fields que não aparecem no frontend no ACF PRO](https://full.services/wp-fixer/corrigir-custom-fields-frontend-acf-pro/)

- [Como corrigir a incompatibilidade do ACF PRO com o editor Gutenberg](https://full.services/wp-fixer/corrigir-compatibilidade-gutenberg-acf-pro/)

- [Como corrigir o erro de Dynamic Content do ACF PRO no Elementor](https://full.services/wp-fixer/corrigir-dynamic-content-acf-elementor/)


---

## Metadados Estruturados (Schema.org)

```json-ld
{
    "@context": "https://schema.org",
    "@graph": [
        {
            "@type": "Organization",
            "@id": "https://full.services/#org",
            "name": "FULL Services",
            "url": "https://full.services/",
            "sameAs": [
                "https://www.instagram.com/fullservicesbr",
                "https://www.facebook.com/fullservices.br",
                "https://www.linkedin.com/company/fullservicesbr/"
            ],
            "knowsAbout": [
                "WordPress",
                "WordPress Hosting",
                "Web Development",
                "Performance Optimization",
                "WordPress Security",
                "SEO para WordPress"
            ],
            "award": [
                "Gold Medal - The WP Weekly Awards 2023",
                "Gold Medal - The WP Weekly Awards 2024"
            ],
            "logo": {
                "@type": "ImageObject",
                "url": "https://full.services/wp-content/uploads/full-services-logo.png",
                "width": 200,
                "height": 60
            },
            "hasCredential": {
                "@type": "EducationalOccupationalCredential",
                "credentialCategory": "certification",
                "name": "CVE Numbering Authority (CNA)",
                "description": "Autoridade de numeração de vulnerabilidades (CVE) para o ecossistema WordPress, autorizada a atribuir IDs CVE. Válida desde 2022-05-03, com abrangência global.",
                "url": "https://www.cve.org/PartnerInformation/ListofPartners/partner/FULL",
                "recognizedBy": {
                    "@type": "Organization",
                    "name": "CISA — Cybersecurity and Infrastructure Security Agency",
                    "url": "https://www.cisa.gov/",
                    "sameAs": "https://www.cisa.gov/"
                }
            }
        },
        {
            "@type": "TechArticle",
            "@id": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/#article",
            "headline": "Como corrigir a Conditional Logic que não funciona no ACF PRO",
            "url": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/",
            "inLanguage": "pt-BR",
            "datePublished": "2026-06-17T12:08:48-03:00",
            "dateModified": "2026-06-17T12:39:06-03:00",
            "author": {
                "@id": "https://full.services/#org"
            },
            "publisher": {
                "@id": "https://full.services/#org"
            },
            "isAccessibleForFree": false,
            "about": [
                {
                    "@type": "Thing",
                    "@id": "https://www.wikidata.org/wiki/Q13166",
                    "name": "WordPress",
                    "sameAs": "https://www.wikidata.org/wiki/Q13166",
                    "url": "https://wordpress.org/"
                },
                {
                    "@type": "Thing",
                    "name": "Page Builders"
                }
            ],
            "mentions": {
                "@type": "Thing",
                "@id": "https://www.wikidata.org/wiki/Q13166",
                "name": "WordPress",
                "sameAs": "https://www.wikidata.org/wiki/Q13166",
                "url": "https://wordpress.org/"
            },
            "mainEntityOfPage": {
                "@type": "WebPage",
                "@id": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/"
            },
            "wordCount": 1155,
            "description": "A Conditional Logic do ACF PRO que não funciona quase sempre vem do campo de gatilho que não guarda um valor comparável (Repeater, Group, Mensagem) ou do JavaScript do ACF que não carregou na tela. A lógica condicional só controla a exibição no editor, não impede que o valor oculto seja salvo ou exibido no frontend.",
            "articleSection": "Page Builders",
            "keywords": "acf campo condicional nao mostra acf_form, acf pro conditional logic nao aparece campo, conditional logic acf nao funciona no frontend, logica condicional acf nao esconde campo",
            "proficiencyLevel": "Intermediate",
            "citation": {
                "@type": "CreativeWork",
                "url": "https://www.advancedcustomfields.com/resources/conditional-logic/",
                "name": "ACF — Conditional Logic"
            },
            "mainEntity": {
                "@type": "SoftwareSourceCode",
                "name": "Como corrigir a Conditional Logic que não funciona no ACF PRO",
                "programmingLanguage": "PHP",
                "codeRepository": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/",
                "isAccessibleForFree": false
            }
        },
        {
            "@type": "FAQPage",
            "@id": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/#faq",
            "isPartOf": {
                "@id": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/#article"
            },
            "isAccessibleForFree": true,
            "mainEntity": [
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/#faq-q1",
                    "name": "Por que a Conditional Logic do ACF PRO não esconde o campo?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "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.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                },
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/#faq-q2",
                    "name": "Quais campos podem ser usados como gatilho da lógica condicional?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "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.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                },
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/#faq-q3",
                    "name": "A lógica condicional do ACF funciona no frontend com acf_form()?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "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.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                },
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/#faq-q4",
                    "name": "A Conditional Logic impede que o campo oculto seja salvo?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "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.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                },
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/#faq-q5",
                    "name": "Configurei a regra mas o campo aparece sempre. O que verificar?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "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.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                },
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/#faq-q6",
                    "name": "Aparece o erro acf is not defined no console. Tem relação?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "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.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                },
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-conditional-logic-acf-pro/#faq-q7",
                    "name": "Registrei o field group por código e a regra não funciona. Por quê?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "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.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                }
            ]
        }
    ]
}
```
