Comment corriger l’erreur Uncaught Error: Call to undefined function trailingslashit()

Avez-vous essayé de mettre à jour PHP en version 7.4, 8.0 ou 8.1 et votre site est tombé en panne avec une erreur HTTP 500 et le message d’erreur « Uncaught Error: Call to undefined function trailingslashit() » ?

L’erreur « Call to undefined function trailingslashit() » est généralement rencontrée dans les projets WordPress. Cette erreur survient lorsque le code essaie d’appeler la fonction trailingslashit(), mais PHP ne parvient pas à la trouver. Cette fonction est habituellement définie dans le fichier du cœur de WordPress wp-includes/formatting.php.

Pour corriger l’erreur « undefined trailingslashit », suivez ces étapes :

  1. Vérifiez que wp-includes/formatting.php est présent et non corrompu :

Assurez-vous que le fichier formatting.php existe dans le répertoire wp-includes de votre installation WordPress. Si le fichier est manquant ou corrompu, vous devrez peut-être le téléverser à nouveau à partir d’une copie fraîche de WordPress. Vous pouvez télécharger la dernière version de WordPress depuis https://wordpress.org/download/.

  1. Assurez-vous que le fichier wp-load.php est inclus correctement :

Dans votre extension ou votre thème personnalisé, assurez-vous d’avoir inclus le fichier wp-load.php avant d’appeler la fonction trailingslashit(). Ce fichier est chargé de charger l’environnement WordPress et les fonctions du cœur. Vous pouvez l’inclure à l’aide de l’extrait de code suivant :

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

Si vous ne connaissez pas le chemin vers wp-load.php, vous pouvez utiliser l’extrait de code suivant pour le localiser :

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. Vérifiez les conflits de noms de fonctions :

Il est possible qu’une autre extension ou un autre thème ait défini une fonction portant le même nom trailingslashit. Si c’est le cas, vous pouvez désactiver l’extension en conflit ou passer à un autre thème pour résoudre le problème.

  1. Déclaration manuelle de la fonction :

En dernier recours, vous pouvez définir manuellement la fonction trailingslashit() dans votre extension ou votre thème. Cependant, cela devrait être évité si possible, car cela peut entraîner des conflits et des problèmes de compatibilité à l’avenir. Si vous devez la définir manuellement, voici la définition de la fonction :

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

N’oubliez pas de toujours sauvegarder vos fichiers et votre base de données avant d’apporter des modifications à votre installation WordPress. C’est le bon moment pour tester d’abord les changements sur un site de staging ou pour créer au préalable une sauvegarde complète du site avec WP Staging.

Articles connexes

Rene Hermenau

Auteur : Rene Hermenau

À propos de l'auteur : René Hermenau est le fondateur de WP STAGING. Il travaille sur les sauvegardes WordPress, les environnements de staging, les migrations, la gestion des bases de données et les workflows de déploiement sécurisés.