Cómo corregir el error Uncaught Error: Call to undefined function trailingslashit()

¿Has intentado actualizar PHP a la versión 7.4, 8.0 u 8.1 y tu sitio web se cae con un error HTTP 500 y el mensaje de error "Uncaught Error: Call to undefined function trailingslashit()"?

El error "Call to undefined function trailingslashit()" se encuentra normalmente en proyectos de WordPress. Este error se produce cuando el código intenta llamar a la función trailingslashit(), pero PHP no la encuentra. Esta función suele estar definida en el archivo del core de WordPress wp-includes/formatting.php.

Para corregir el error "undefined trailingslashit", sigue estos pasos:

  1. Comprueba que wp-includes/formatting.php esté presente y no esté dañado:

Asegúrate de que el archivo formatting.php exista en el directorio wp-includes de tu instalación de WordPress. Si el archivo falta o está dañado, es posible que tengas que volver a subirlo desde una copia limpia de WordPress. Puedes descargar la última versión de WordPress desde https://wordpress.org/download/.

  1. Asegúrate de que el archivo wp-load.php esté incluido correctamente:

En tu plugin o tema personalizado, asegúrate de haber incluido el archivo wp-load.php antes de llamar a la función trailingslashit(). Este archivo se encarga de cargar el entorno y las funciones del core de WordPress. Puedes incluirlo con el siguiente fragmento de código:

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

Si no conoces la ruta a wp-load.php, puedes usar el siguiente fragmento de código para localizarlo:

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. Comprueba si hay conflictos en los nombres de funciones:

Es posible que otro plugin o tema haya definido una función con el mismo nombre trailingslashit. Si es así, puedes desactivar el plugin en conflicto o cambiar a otro tema para resolver el problema.

  1. Declaración manual de la función:

Como último recurso, puedes definir manualmente la función trailingslashit() en tu plugin o tema. Sin embargo, esto debe evitarse en lo posible, ya que puede provocar conflictos y problemas de compatibilidad en el futuro. Si debes definirla manualmente, aquí tienes la definición de la función:

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

Recuerda hacer siempre una copia de seguridad de tus archivos y de la base de datos antes de hacer cualquier cambio en tu instalación de WordPress. Es un buen momento para probar primero los cambios en un sitio de staging o para crear una copia de seguridad completa del sitio con WP Staging antes de nada.

Artículos relacionados

Rene Hermenau

Autor: Rene Hermenau

Sobre el autor: René Hermenau es el fundador de WP STAGING. Trabaja en copias de seguridad de WordPress, entornos de staging, migraciones, gestión de bases de datos y flujos de despliegue seguros.