O recém-lançado WordPress 7.1 trouxe diversas novidades para a plataforma. No entanto, se você utiliza a versão atual do plugin de cache WP Rocket (3.23.2.2), é preciso ter muita cautela antes de apertar o botão de atualizar!
Muitos usuários estão relatando que a atualização direta para o WordPress 7.1 em ambiente de produção está causando um erro crítico, tirando os sites do ar instantaneamente.
Neste post, vamos explicar o que está acontecendo e como você pode aplicar uma correção manual para resolver o problema enquanto aguardamos uma atualização oficial do WP Rocket.
Qual é o problema?
O problema ocorre devido a uma mudança no core do WordPress 7.1. Uma função interna que anteriormente lidava com chaves (keys) no formato de string (texto) agora está passando essas chaves como int (números inteiros).
O WP Rocket possui um método específico (unregister_callback) que utiliza a função nativa do PHP substr(). Como a função substr() espera receber uma string e o WordPress 7.1 passou a enviar um int, ocorre um erro fatal (Fatal Error) que derruba a aplicação.
O problema já foi identificado pela comunidade e reportado no GitHub oficial do plugin (Pull Request #8744).
Como corrigir o problema manualmente
A equipe do WP Rocket já está ciente e uma correção oficial deve ser lançada em breve. Porém, se o seu site já saiu do ar ou se você precisa muito fazer a atualização agora, existe um fix manual bem simples que resolve a situação.
Tudo o que precisamos fazer é forçar o PHP a converter a variável $key para uma string (processo conhecido como type casting) antes de passá-la para a função substr().Passo a passo:
- Acesse os arquivos do seu site via FTP ou pelo Gerenciador de Arquivos da sua hospedagem.
- Navegue até a pasta do WP Rocket (geralmente em
wp-content/plugins/wp-rocket/). - Você precisará editar o arquivo onde a função
unregister_callbackestá definida (com base no erro reportado, procure pelo arquivo que gerencia as callbacks de hooks, possivelmente relacionado a integrações como a do Cloudflare). - Vá até a linha exata (por volta da linha 559) onde você encontra o seguinte código:

foreach ( $original_wp_filter[ $priority ] as $key => $config ) {
if ( substr( $key, -strlen( $method ) ) !== $method ) {
continue;
}
- Substitua esse trecho forçando o
$keya ser lido como(string), ficando desta forma:

foreach ( $original_wp_filter[ $priority ] as $key => $config ) {
// PHP casts numeric-string array keys to int, so $key is not always a string.
if ( substr( (string) $key, -strlen( $method ) ) !== $method ) {
continue;
}
- Salve o arquivo.
Com essa simples modificação de adicionar o (string) antes do $key, a versão 3.23.2.2 do WP Rocket voltará a funcionar perfeitamente com o WordPress 7.1 e o seu site voltará ao ar.
Recomendação de Segurança
Como sempre, evite atualizar grandes versões do WordPress diretamente em produção, especialmente nos primeiros dias de lançamento. Sempre teste as atualizações em um ambiente de homologação (staging) para garantir que os seus plugins e o seu tema são 100% compatíveis com a nova versão.
Se você ainda não atualizou para o WP 7.1 e usa o WP Rocket, a melhor recomendação é aguardar até que uma nova versão corrigida do plugin seja lançada oficialmente no painel do WordPress.
Ficou com alguma dúvida ou não está conseguindo editar o arquivo? Deixe um comentário abaixo para que possamos ajudar!

