Próbowałeś zaktualizować PHP do wersji 7.4, 8.0 lub 8.1 i Twoja witryna przestała działać, zwracając błąd HTTP 500 oraz komunikat „Uncaught Error: Call to undefined function trailingslashit()"?
Błąd „Call to undefined function trailingslashit()" zwykle pojawia się w projektach WordPress. Ten błąd występuje, gdy kod próbuje wywołać funkcję trailingslashit(), ale PHP nie może jej znaleźć. Funkcja ta jest zazwyczaj zdefiniowana w pliku rdzenia WordPressa wp-includes/formatting.php.
Aby naprawić błąd „undefined trailingslashit", wykonaj następujące kroki:
- Sprawdź, czy plik
wp-includes/formatting.phpistnieje i nie jest uszkodzony:
Upewnij się, że plik formatting.php znajduje się w katalogu wp-includes Twojej instalacji WordPressa. Jeśli plik jest brakujący lub uszkodzony, być może trzeba będzie wgrać go ponownie ze świeżej kopii WordPressa. Najnowszą wersję WordPressa możesz pobrać z https://wordpress.org/download/.
- Upewnij się, że plik
wp-load.phpjest poprawnie dołączony:
We własnej wtyczce lub motywie upewnij się, że plik wp-load.php został dołączony przed wywołaniem funkcji trailingslashit(). Plik ten odpowiada za załadowanie środowiska WordPressa i funkcji rdzenia. Możesz go dołączyć, używając poniższego fragmentu kodu:
require_once(ABSPATH . 'wp-load.php');Jeśli nie znasz ścieżki do wp-load.php, możesz użyć poniższego fragmentu kodu, aby ją znaleźć:
$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);- Sprawdź konflikty nazw funkcji:
Możliwe, że inna wtyczka lub motyw zdefiniowała funkcję o tej samej nazwie trailingslashit. W takim przypadku możesz wyłączyć konfliktową wtyczkę lub przełączyć się na inny motyw, aby rozwiązać problem.
- Ręczna deklaracja funkcji:
W ostateczności możesz ręcznie zdefiniować funkcję trailingslashit() we własnej wtyczce lub motywie. Należy jednak tego unikać, jeśli to możliwe, ponieważ może to prowadzić do konfliktów i problemów z kompatybilnością w przyszłości. Jeśli musisz ją zdefiniować ręcznie, oto definicja funkcji:
if (!function_exists('trailingslashit')) {
function trailingslashit($string) {
return rtrim($string, '/') . '/';
}
}Pamiętaj, aby zawsze wykonywać kopię zapasową plików i bazy danych przed wprowadzaniem jakichkolwiek zmian w instalacji WordPressa. To dobry moment, aby najpierw przetestować zmiany na witrynie staging lub utworzyć pełną kopię zapasową witryny za pomocą WP Staging.