Migrei meu site WordPress (multisite) do PHP 7.4 para o PHP 8.3.6 e recebi o seguinte erro:
Fatal error: Uncaught Error: Call to undefined function wp_kses() in /home/devnote/www/wp-includes/functions.php:6073
Stack trace:
#0 /home/devnote/www/wp-includes/functions.php(5554): wp_trigger_error()
#1 /home/devnote/www/wp-includes/class-wpdb.php(1333): _deprecated_function()
#2 /home/devnote/www/wp-content/sunrise.php(11): wpdb->escape()
#3 /home/devnote/www/wp-includes/ms-settings.php(47): include_once('...')
#4 /home/devnote/www/wp-settings.php(155): require('...')
#5 /home/devnote/www/wp-config.php(107): require_once('...')
#6 /home/devnote/www/wp-load.php(50): require_once('...')
#7 /home/devnote/www/wp-blog-header.php(13): require_once('...')
#8 /home/devnote/www/index.php(17): require('...')
#9 {main} thrown in /home/devnote/www/wp-includes/functions.php on line 6073
./wp-includes/functions.php:
$message = wp_kses(
$message,
array(
'a' => array( 'href' => true ),
'br' => array(),
'code' => array(),
'em' => array(),
'strong' => array(),
),
array( 'http', 'https' )
);
De onde pode vir esse erro?
Desativei os plugins e alterei o tema, veja aqui para mais detalhes, mas não adiantou.
A versão do WordPress é 6.7.1 (mais recente).
Após a atualização para a versão mais recente do WordPress 6.7.1, os números das linhas mudaram um pouco:
Fatal error: Uncaught Error: Call to undefined function wp_kses() in /home/devnote/www/wp-includes/functions.php:6098 Stack trace:
#0 /home/devnote/www/wp-includes/functions.php(5579): wp_trigger_error()
#1 /home/devnote/www/wp-includes/class-wpdb.php(1333): _deprecated_function()
#2 /home/devnote/www/wp-content/sunrise.php(11): wpdb->escape()
#3 /home/devnote/www/wp-includes/ms-settings.php(47): include_once('...')
#4 /home/devnote/www/wp-settings.php(156): require('...')
#5 /home/devnote/www/wp-config.php(107): require_once('...')
#6 /home/devnote/www/wp-load.php(50): require_once('...')
#7 /home/devnote/www/wp-blog-header.php(13): require_once('...')
#8 /home/devnote/www/index.php(17): require('...')
#9 {main} thrown in /home/devnote/www/wp-includes/functions.php on line 6098
A captura de tela do meu painel de administração multisite:
Você tem um
sunrise.php
arquivo antigo sobrando na pasta wp-content/.É um arquivo drop-in (compare com Plugins e Drop-Ins que você deve usar no meu blog ).
E é incluído se a constante nomeada
SUNRISE
for definida.Verifique se o arquivo ./wp-config.php está definido lá (ou pesquise a string em arquivos PHP) e descomente a linha.
Isso impedirá que o drop-in seja carregado e muito provavelmente as coisas funcionarão novamente. Se as operações no arquivo forem realmente necessárias para sua configuração multisite, você terá que atualizar o código ali e substituir a funcionalidade obsoleta. Mas provavelmente é apenas um descuido, já que alguma versão 3 da instalação.