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

Como corrigir avisos de Deprecated no PHP 8 do WordPress

Time Full Services Time Full Services
Tipo Erro de PHP
Nome do erro Avisos de Deprecated no PHP 8 EN: PHP 8 Deprecated warnings
Severidade Atenção
Descrição Os avisos de Deprecated no PHP 8 aparecem quando um plugin ou tema usa um recurso da linguagem que ainda funciona, mas foi marcado para remoção em versões futuras. Não derrubam o site, mas poluem a tela e os logs e indicam código desatualizado que pode quebrar de vez em um PHP mais novo.

O que é os avisos de Deprecated no PHP 8?

Os avisos de Deprecated no PHP 8 do WordPress são notices que o PHP emite quando o código usa funções, sintaxes ou comportamentos que continuam válidos, mas estão programados para serem removidos. O PHP 8.0 e o 8.1 endureceram várias regras antigas, então plugins e temas escritos para o PHP 7 passaram a disparar esses avisos. Diferente de um erro fatal, o site continua no ar: o problema é estético (avisos na tela) e preventivo (o recurso vai sumir em uma versão futura e aí vira erro).

Como identificar

  • Mensagens iniciadas por “Deprecated:” no topo das páginas ou no wp-content/debug.log, como “Deprecated: Required parameter follows optional parameter”.
  • Variações comuns do PHP 8.1 como “Deprecated: Passing null to parameter #1 ($string) of type string is deprecated” disparadas por funções como trim() e strlen().
  • O debug.log cresce rápido com dezenas de linhas Deprecated repetidas a cada carregamento de página.
  • Os avisos surgiram logo após o host atualizar a versão do PHP do plano para 8.0, 8.1 ou superior.
Antes de começar: Faça backup do wp-config.php antes de editar. Esconder o aviso com WP_DEBUG_DISPLAY a false não conserta o código: é só uma medida para o visitante não ver. Mantenha o plano de atualizar os plugins, porque o recurso descontinuado vira erro fatal em uma versão futura do PHP.

Como prevenir

  • Mantenha plugins, tema e o core do WordPress sempre atualizados para versões compatíveis com o PHP 8
  • Em produção, deixe WP_DEBUG_DISPLAY como false e revise o debug.log periodicamente
  • Antes de o host subir a versão do PHP, teste o site em uma cópia de homologação na nova versão

Causa

  • Plugin ou tema desatualizado que usa sintaxe antiga, como parâmetro obrigatório depois de parâmetro opcional na assinatura de funções.
  • Funções de string do PHP recebendo null em vez de texto (trim(null), strlen(null)), comportamento descontinuado no PHP 8.1.
  • Uso de chaves para acessar caracteres de string ($texto{0}), removido em favor de colchetes ($texto[0]).
  • Métodos sem tipo de retorno em classes que estendem interfaces internas do PHP, que passaram a exigir o atributo de compatibilidade.
  • WP_DEBUG e WP_DEBUG_DISPLAY ligados em produção, fazendo os avisos aparecerem na tela do visitante.

Como resolver

  1. Identifique o arquivo que dispara o aviso: abra o wp-content/debug.log e veja o caminho citado em cada linha Deprecated. Ele aponta o plugin ou o tema responsável.
  2. Atualize plugins e tema: a correção real é atualizar para versões compatíveis com o PHP 8. A maioria dos desenvolvedores já lançou releases que eliminam os avisos.
  3. Esconda os avisos do visitante em produção: no wp-config.php, mantenha o log ligado mas desligue a exibição na tela, para o site não mostrar Deprecated ao público enquanto você atualiza:
    define('WP_DEBUG', true);
    define('WP_DEBUG_DISPLAY', false);
    define('WP_DEBUG_LOG', true);
  4. Substitua um plugin sem atualização: se um plugin não recebe atualização há tempos e segue disparando Deprecated, troque-o por um equivalente mantido, em vez de remendar o código de terceiros.
  5. Não rebaixe o PHP só pelos avisos: voltar para o PHP 7 esconde o problema, mas perde segurança e desempenho. Prefira atualizar o código e manter o PHP 8.
PHP
// EXEMPLO do que dispara o aviso no PHP 8 e como ajustar a assinatura

// ANTES (Deprecated: required parameter follows optional parameter):
function monta_link( $texto = 'Leia mais', $url ) {
    return '<a href="' . $url . '">' . $texto . '</a>';
}

// DEPOIS: parametro obrigatorio vem primeiro; o opcional, por ultimo
function monta_link( $url, $texto = 'Leia mais' ) {
    return '<a href="' . $url . '">' . $texto . '</a>';
}

Perguntas frequentes

Os avisos de Deprecated derrubam o site?
Não. Deprecated é um aviso, não um erro fatal: o site continua funcionando. O problema é que os avisos aparecem na tela ou enchem o log e sinalizam código que vai parar de funcionar em uma versão futura do PHP.
Por que os avisos surgiram do nada?
Quase sempre porque o seu host atualizou a versão do PHP do plano para 8.0 ou 8.1. Recursos antigos que eram aceitos no PHP 7 passaram a emitir Deprecated. O código não mudou; a versão do PHP que o avalia, sim.
Como escondo os avisos sem desligar a depuração?
No wp-config.php, deixe WP_DEBUG e WP_DEBUG_LOG como true e WP_DEBUG_DISPLAY como false. Assim os avisos vão para o debug.log, mas não aparecem para o visitante na tela do site.
O que significa Passing null to parameter is deprecated?
É um aviso do PHP 8.1 quando uma função de string como trim() ou strlen() recebe null em vez de texto. O plugin precisa garantir que passa uma string. A correção definitiva vem na atualização do plugin que trata esse caso.
Posso só voltar para o PHP 7 e resolver?
Esconde o sintoma, mas não vale a pena: versões antigas do PHP perdem suporte de segurança e são mais lentas. O caminho certo é manter o PHP 8 e atualizar os plugins e o tema que disparam os avisos.
Preciso editar código para corrigir os avisos?
Na maioria dos casos, não: basta atualizar os plugins e o tema, que já vêm corrigidos pelos desenvolvedores. Só é preciso editar quando o aviso vem de um snippet próprio no functions.php ou de um plugin sem manutenção.

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