---
title: "Como corrigir Cannot redeclare function"
url: https://full.services/wp-fixer/corrigir-cannot-redeclare-function-wordpress/
date: 2026-06-13
author: "Clayton Margiotti"
---

# Como corrigir Cannot redeclare function

## O que é o erro Cannot redeclare function?

No PHP, cada função declarada com a palavra function só pode existir uma vez por execução. O WordPress carrega o tema e todos os plugins ativos numa mesma requisição, então se duas partes do código declaram uma função com o mesmo nome, o PHP encontra a segunda declaração, percebe que o nome já existe e aborta com "Cannot redeclare". O erro aponta o arquivo e a linha da declaração duplicada, e o site para porque é um erro fatal, não um simples aviso.

## Como identificar

- Mensagem "Fatal error: Cannot redeclare nome_da_função() (previously declared in /caminho/arquivo.php:N)".

- A mensagem cita dois arquivos: onde a função foi declarada primeiro e onde a duplicata aparece.

- O erro surge após colar um snippet duas vezes no functions.php ou ativar um segundo plugin parecido.

- O site ou só o wp-admin trava na linha do erro, mostrando apenas a mensagem fatal.

**Antes de começar:** Faça backup do functions.php antes de editar e evite o Aparência > Editor de temas: um erro fatal salvo por ali pode trancar o wp-admin e exigir correção via FTP. Edite snippets por FTP ou por um plugin de snippets que valida o código.

## Como prevenir

- Use prefixos únicos nos nomes de função (ex.: meusite_função) para evitar colisões com plugins e temas

- Envolva suas funções globais em if ( ! function_exists() ) antes de declará-las

- Prefira require_once e include_once para arquivos de funções, nunca a versão sem _once

Erros relacionados

- [Como corrigir Call to undefined function](https://full.services/wp-fixer/corrigir-call-to-undefined-function-wordpress/)

- [Como corrigir Uncaught Error: Class not found](https://full.services/wp-fixer/corrigir-class-not-found-wordpress/)

- [Como corrigir Parse error / syntax error no PHP](https://full.services/wp-fixer/corrigir-parse-error-syntax-php-wordpress/)


---

## 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-cannot-redeclare-function-wordpress/#article",
            "headline": "Como corrigir Cannot redeclare function",
            "url": "https://full.services/wp-fixer/corrigir-cannot-redeclare-function-wordpress/",
            "inLanguage": "pt-BR",
            "datePublished": "2026-06-13T23:45:34-03:00",
            "dateModified": "2026-06-17T18:56:36-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": "Erro de PHP"
                }
            ],
            "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-cannot-redeclare-function-wordpress/"
            },
            "wordCount": 513,
            "description": "O erro Cannot redeclare function é um erro fatal de PHP que ocorre quando a mesma função é definida duas vezes na execução. No WordPress, costuma surgir ao colar um snippet repetido no functions.php ou ao ativar dois plugins que declaram uma função com o mesmo nome.",
            "articleSection": "Erro de PHP",
            "keywords": "cannot redeclare functions.php wordpress, fatal error cannot redeclare wordpress, funcao declarada duas vezes php, function_exists wordpress",
            "proficiencyLevel": "Intermediate",
            "citation": {
                "@type": "CreativeWork",
                "url": "https://www.php.net/manual/en/functions.user-defined.php",
                "name": "PHP Manual — User-defined functions"
            },
            "mainEntity": {
                "@type": "SoftwareSourceCode",
                "name": "Como corrigir Cannot redeclare function",
                "programmingLanguage": "PHP",
                "codeRepository": "https://full.services/wp-fixer/corrigir-cannot-redeclare-function-wordpress/",
                "isAccessibleForFree": false
            }
        },
        {
            "@type": "FAQPage",
            "@id": "https://full.services/wp-fixer/corrigir-cannot-redeclare-function-wordpress/#faq",
            "isPartOf": {
                "@id": "https://full.services/wp-fixer/corrigir-cannot-redeclare-function-wordpress/#article"
            },
            "isAccessibleForFree": true,
            "mainEntity": [
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-cannot-redeclare-function-wordpress/#faq-q1",
                    "name": "O que causa o erro Cannot redeclare function no WordPress?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Uma função PHP com o mesmo nome foi declarada duas vezes na mesma execução. Quase sempre é um snippet colado em duplicidade no functions.php ou dois plugins que definem uma função homônima no escopo global. O PHP encontra a duplicata e aborta com erro fatal.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                },
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-cannot-redeclare-function-wordpress/#faq-q2",
                    "name": "Como sei qual arquivo tem a função duplicada?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "A própria mensagem cita os dois caminhos: onde a função foi declarada primeiro (previously declared in) e onde está a segunda declaração que disparou o erro. Abra os dois arquivos via FTP e compare as linhas indicadas.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                },
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-cannot-redeclare-function-wordpress/#faq-q3",
                    "name": "function_exists resolve de vez o Cannot redeclare?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Resolve quando o conflito está no seu próprio código: envolver a declaração em if ( ! function_exists() ) impede a segunda criação. Se a colisão é entre dois plugins de terceiros, a solução real é desativar um deles ou trocá-lo por outro.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                },
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-cannot-redeclare-function-wordpress/#faq-q4",
                    "name": "Dois plugins declaram a mesma função. O que faço?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Desative o plugin menos essencial pela tela de plugins ou renomeando a pasta dele via FTP, e procure uma alternativa. Plugins bem escritos prefixam suas funções, então a colisão costuma indicar que um dos dois foi mal codificado.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                },
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-cannot-redeclare-function-wordpress/#faq-q5",
                    "name": "Qual a diferença entre include e include_once?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "O include carrega o arquivo toda vez que é chamado; se ele declara funções e for incluído duas vezes, gera Cannot redeclare. O include_once carrega o arquivo apenas na primeira chamada, então é a escolha certa para arquivos que definem funções.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                },
                {
                    "@type": "Question",
                    "@id": "https://full.services/wp-fixer/corrigir-cannot-redeclare-function-wordpress/#faq-q6",
                    "name": "O erro travou meu wp-admin. Como volto a entrar?",
                    "inLanguage": "pt-BR",
                    "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Acesse o site via FTP, abra o functions.php do tema ou desative o plugin culpado renomeando a pasta dele dentro de wp-content/plugins. Removida a declaração duplicada, o erro fatal desaparece e o painel volta a carregar.",
                        "author": {
                            "@id": "https://full.services/#org"
                        }
                    }
                }
            ]
        }
    ]
}
```
