Como corrigir o erro Uncaught Error: Call to undefined function trailingslashit()

Você tentou atualizar o PHP para a versão 7.4, 8.0 ou 8.1 e o seu site caiu com um erro HTTP 500 e a mensagem de erro "Uncaught Error: Call to undefined function trailingslashit()"?

O erro "Call to undefined function trailingslashit()" normalmente é encontrado em projetos WordPress. Esse erro ocorre quando o código tenta chamar a função trailingslashit(), mas o PHP não consegue encontrá-la. Essa função normalmente é definida no arquivo do core do WordPress wp-includes/formatting.php.

Para corrigir o erro "undefined trailingslashit", siga estes passos:

  1. Verifique se wp-includes/formatting.php está presente e não está corrompido:

Certifique-se de que o arquivo formatting.php exista no diretório wp-includes da sua instalação do WordPress. Se o arquivo estiver faltando ou corrompido, talvez seja necessário enviá-lo novamente a partir de uma cópia limpa do WordPress. Você pode baixar a última versão do WordPress em https://wordpress.org/download/.

  1. Garanta que o arquivo wp-load.php esteja incluído corretamente:

No seu plugin ou tema personalizado, certifique-se de ter incluído o arquivo wp-load.php antes de chamar a função trailingslashit(). Esse arquivo é responsável por carregar o ambiente do WordPress e as funções do core. Você pode incluí-lo usando o seguinte trecho de código:

PHP
require_once(ABSPATH . 'wp-load.php');

Se você não souber o caminho até wp-load.php, pode usar o seguinte trecho de código para localizá-lo:

PHP
$wp_load = dirname(__FILE__) . '/wp-load.php';
while (!file_exists($wp_load)) {
    $wp_load = dirname(dirname($wp_load)) . '/wp-load.php';
    if (dirname(dirname($wp_load)) === '/') {
        break;
    }
}
require_once($wp_load);
  1. Verifique conflitos de nomes de funções:

É possível que outro plugin ou tema tenha definido uma função com o mesmo nome trailingslashit. Se for esse o caso, você pode desativar o plugin em conflito ou mudar para um tema diferente para resolver o problema.

  1. Declaração manual da função:

Como último recurso, você pode definir manualmente a função trailingslashit() no seu plugin ou tema. No entanto, isso deve ser evitado sempre que possível, pois pode causar conflitos e problemas de compatibilidade no futuro. Se precisar defini-la manualmente, aqui está a definição da função:

PHP
if (!function_exists('trailingslashit')) {
    function trailingslashit($string) {
        return rtrim($string, '/') . '/';
    }
}

Lembre-se de sempre fazer backup dos seus arquivos e do banco de dados antes de fazer qualquer alteração na sua instalação do WordPress. Esse pode ser um bom momento para testar as alterações primeiro em um site de staging ou criar um backup completo do site com o WP Staging antes.

Artigos relacionados

Rene Hermenau

Autor: Rene Hermenau

Sobre o autor: René Hermenau é o fundador do WP STAGING. Ele trabalha com backups do WordPress, ambientes de staging, migrações, gestão de bases de dados e fluxos de implantação seguros.