Come risolvere l’errore Uncaught Error: Call to undefined function trailingslashit()

Hai provato ad aggiornare PHP alla versione 7.4, 8.0 o 8.1 e il tuo sito web va in errore con un HTTP 500 e il messaggio di errore "Uncaught Error: Call to undefined function trailingslashit()"?

L’errore "Call to undefined function trailingslashit()" si verifica tipicamente nei progetti WordPress. Questo errore si presenta quando il codice cerca di chiamare la funzione trailingslashit(), ma PHP non riesce a trovarla. Questa funzione è solitamente definita nel file core di WordPress wp-includes/formatting.php.

Per risolvere l’errore "undefined trailingslashit", segui questi passaggi:

  1. Verifica che wp-includes/formatting.php sia presente e non sia corrotto:

Assicurati che il file formatting.php esista nella directory wp-includes della tua installazione di WordPress. Se il file è mancante o corrotto, potrebbe essere necessario ricaricarlo da una copia integra di WordPress. Puoi scaricare l’ultima versione di WordPress da https://wordpress.org/download/.

  1. Assicurati che il file wp-load.php sia incluso correttamente:

Nel tuo plugin o tema personalizzato, assicurati di aver incluso il file wp-load.php prima di chiamare la funzione trailingslashit(). Questo file è responsabile del caricamento dell’ambiente WordPress e delle funzioni del core. Puoi includerlo utilizzando il seguente snippet di codice:

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

Se non conosci il percorso di wp-load.php, puoi utilizzare il seguente snippet di codice per individuarlo:

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. Controlla eventuali conflitti di nomi delle funzioni:

È possibile che un altro plugin o tema abbia definito una funzione con lo stesso nome trailingslashit. In tal caso, puoi disattivare il plugin in conflitto o passare a un tema diverso per risolvere il problema.

  1. Dichiarazione manuale della funzione:

Come ultima soluzione, puoi definire manualmente la funzione trailingslashit() nel tuo plugin o tema. Tuttavia, ciò dovrebbe essere evitato se possibile, poiché può portare a conflitti e problemi di compatibilità in futuro. Se devi definirla manualmente, ecco la definizione della funzione:

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

Ricorda di eseguire sempre un backup dei tuoi file e del database prima di apportare modifiche alla tua installazione di WordPress. Potrebbe essere un buon momento per provare prima le modifiche su un sito di staging o per creare un backup completo del sito con WP Staging prima di tutto.

Articoli correlati

Rene Hermenau

Autore: Rene Hermenau

Informazioni sull'autore: René Hermenau è il fondatore di WP STAGING. Si occupa di backup WordPress, staging, migrazioni, gestione dei database e flussi di deployment sicuri.