Sprawdzanie, czy funkcja istnieje w WordPress

Ostatnio użytkownik zapytał nas, jak sprawdzić, czy funkcja istnieje podczas dodawania funkcji do WordPress.

Najlepszą częścią WordPress jest jego elastyczność, w tym możliwość dodawania własnych funkcji do witryny. Czasami jednak kod niestandardowy może nie działać, ponieważ funkcja, do której się odnosi, już nie istnieje.

W tym artykule pokażemy, jak łatwo sprawdzić, czy funkcja istnieje przed dodaniem jej do motywu WordPress lub wtyczki specyficznej dla witryny.

Checking if a function exists in WordPress

Po co dodawać, jeśli funkcja istnieje do kodu niestandardowego

WordPress jest napisany głównie w języku programowania PHP. PHP to język programowania po stronie serwera, który działa na serwerach dostawcy usług hostingowych WordPress.

Ponieważ PHP musi zakończyć działanie przed załadowaniem strony w przeglądarkach odwiedzających, istnieją pewne ograniczenia. Jednym z tych ograniczeń jest to, że jeśli coś pójdzie nie tak, może to uniemożliwić ładowanie całej strony.

W WordPress, jeśli brakująca funkcja uniemożliwia uruchomienie reszty kodu, zatrzymuje się i wyświetla krytyczny błąd lub krytyczny komunikat o błędzie.

WordPress critical error message

Co sprawi, że funkcja nagle przestanie działać lub zniknie?

Jest to częstszy błąd WordPress, niż mogłoby się wydawać. Na przykład załóżmy, że jedna z wtyczek WordPress zawiera funkcję dodaną do obszaru stopki motywu.

Dezaktywacja wtyczki spowoduje, że funkcja zniknie i spowoduje krytyczny błąd w witrynie WordPress.

Mając to na uwadze, przyjrzyjmy się, jak łatwo sprawdzić, czy funkcja istnieje przed wykonaniem jej w plikach motywów WordPress.

Sprawdzanie, czy funkcja istnieje w WordPress

Na szczęście język programowania PHP ma wbudowaną metodę łatwego sprawdzania istnienia funkcji przed jej wykonaniem.

Załóżmy, że masz funkcję WordPress, która wyświetla aktualny czas z informacjami o strefie czasowej. Oto przykładowy fragment kodu, którego możesz użyć, aby go wypróbować.

// wyświetl aktualny czas z strefą czasową
function wpb_show_timezone () { 
$better_time = current_time ('F j, Y g: i A e'); 
echo "<P>aktualny czas to " . $better_time ."</p>"; 
}

Aby wywołać tę funkcję, musisz dodać następujący kod w dowolnym miejscu w szablonie WordPress, w którym chcesz wyświetlić aktualny czas.

<?php wpb_show_timezone ();?>

Tak to wyglądało na naszej stronie testowej.

Function runs normally

Teraz, jeśli kod odpowiedzialny za wykonanie tej funkcji zniknie, wywołanie funkcji zepsuje Twoją witrynę.

Critical error in WordPress

Dodajmy sprawdzenie, czy ten kod działa tylko wtedy, gdy funkcja istnieje.

<?php 
if (function_exists ('wpb_show_timezone')) { 
wpb_show_timezone(); 
} else { 
// do nothing
} 
?>

W tym kodzie używamy funkcji function_exists (). Ta funkcja sprawdza, czy funkcja istnieje i zwraca True lub False.

Następnie dodaliśmy warunek if-else, aby podjąć odpowiednie działania w zależności od dostępności funkcji.

Teraz, gdy funkcja nie jest już dostępna, kod po prostu go pominie, a WordPress będzie mógł normalnie załadować resztę witryny.

Missing function skipped

Mamy nadzieję, że ten artykuł pomógł Ci dowiedzieć się, jak sprawdzić, czy funkcja istnieje w WordPress. Możesz również zobaczyć nasz kompletny przewodnik rozwiązywania problemów WordPress lub naszą ściągawkę dla twórców motywów WordPress.

Jeśli podoba Ci się ten artykuł, zasubskrybuj nasz kanał YouTube dla samouczków wideo WordPress. Znajdziesz nas również na Twitterze i Facebooku.

You May Also Like

Czym jest Nightografia? Poznaj smartfon Samsung Galaxy S22 5G

W artykule: Nightografia, czyli jak robić zdjęcia nocą telefonemAparat do zdjęć nocnych…

Jak automatycznie publikować na Facebooku z WordPress?

W artykule: Dlaczego automatycznie udostępniać posty WordPress na Facebooku?Automatycznie Publikuj na Facebooku…

Przewodnik dla początkujących: jak opublikować stronę internetową w 2021 roku (krok po kroku)

W artykule: Używanie Kreatora witryn do publikowania witryny1. Opublikuj stronę internetową za…

Com vs Net-Jaka jest różnica między rozszerzeniami domen

W artykule: Czym są rozszerzenia nazw domen. Com I. Net?Różnica między nazwami…