Zaufane samouczki WordPress, kiedy ich najbardziej potrzebujesz.
Przewodnik dla początkujących po WordPressie
WPB Cup
25 milionów+
Witryny korzystające z naszych wtyczek
16+
Lata doświadczenia z WordPressem
3000+
Samouczki WordPress od ekspertów

Najlepsza praktyka: Sprawdź, czy funkcja istnieje podczas dodawania w motywie WordPress

Jeden z naszych bardziej technicznych czytelników poprosił nas ostatnio o sprawdzenie, czy funkcja PHP istnieje przed zintegrowaniem nowego kodu ze stroną WordPress. Jest to ważne, aby zapewnić płynne działanie witryny i unikać błędów.

Jedną z zalet WordPressa jest jego elastyczność, a zespół WPBeginner regularnie dodaje niestandardowe funkcje, aby poprawić funkcjonalność naszej witryny. Rozumiemy, że niestandardowy kod PHP może zawieść, jeśli wywoła funkcję, która już nie istnieje lub nie została jeszcze zdefiniowana.

W tym artykule pokażemy Ci, jak łatwo sprawdzić, czy funkcja istnieje przed dodaniem jej do motywu WordPress, co pozwoli Ci uniknąć potencjalnych błędów w kodzie.

Sprawdzanie, czy funkcja istnieje w WordPressie

Dlaczego warto dodać „Jeśli funkcja istnieje” do własnego kodu?

WordPress jest głównie napisany w języku programowania PHP. PHP to serwerowy język programowania, który działa na serwerach Twojego hostingu WordPress.

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

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

Krytyczny komunikat o błędzie WordPress

Co może spowodować, ż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 Twoich wtyczek WordPress zawiera funkcję, którą dodałeś do obszaru nagłówka lub stopki swojego motywu. Dezaktywacja wtyczki spowoduje zniknięcie funkcji i krytyczny błąd na Twojej stronie WordPress.

Biorąc to pod uwagę, przyjrzyjmy się, jak łatwo sprawdzić, czy funkcja istnieje przed jej wykonaniem w plikach motywu WordPress.

Sprawdzanie, czy funkcja istnieje w WordPressie

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

Załóżmy, że masz funkcję WordPress, która wyświetla aktualny czas wraz z informacją o strefie czasowej. Oto przykładowy fragment kodu, którego możesz użyć do wypróbowania.

Możesz dodać go bezpośrednio do pliku functions.php swojego motywu, ale w tym samouczku użyjemy wtyczki do fragmentów kodu WPCode, ponieważ jest to najbezpieczniejszy i najłatwiejszy sposób na dodawanie własnego kodu w WordPressie.

Najpierw musisz zainstalować i aktywować Wtyczkę WPCode Free Plugin. Jeśli potrzebujesz pomocy w tym zakresie, zapoznaj się z naszym przewodnikiem krok po kroku dla początkujących na temat jak zainstalować wtyczkę WordPress.

Po aktywacji musisz przejść do Fragmenty kodu » + Dodaj fragment na swoim pulpicie WordPress. Tam najedź kursorem myszy na opcję „Dodaj swój niestandardowy kod (nowy fragment)”, a następnie kliknij przycisk „Użyj fragmentu”, który się pojawi.

Dodawanie niestandardowego kodu w WPCode

Otworzy się nowa strona, na której możesz dodać swój niestandardowy fragment. Wpisz tytuł, na przykład „Wyświetl aktualny czas z uwzględnieniem strefy czasowej”, a następnie wklej poniższy fragment kodu do okna podglądu kodu.

//display current time with timezone
function wpb_show_timezone() {
$better_time = current_time('F j, Y g:i a e');
echo "<p>The current time is " . $better_time ."</p>";
}
Wklej fragment kodu do WPCode

Następnie musisz wybrać „Fragment kodu PHP” z listy rozwijanej Typ kodu, aby upewnić się, że kod działa poprawnie.

Na koniec należy przełączyć przełącznik Aktywuj na pozycję Włączone i kliknąć przycisk „Zapisz fragment”, aby zapisać nowy fragment kodu.

Aktywuj i zapisz fragment kodu

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

<?php wpb_show_timezone(); ?>

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

Funkcja działa normalnie

Co by się stało, gdyby kod odpowiedzialny za wykonanie tej funkcji zniknął?

Wywołanie funkcji spowoduje awarię Twojej witryny w ten sposób.

Krytyczny błąd w WordPress

Dodajmy sprawdzenie, aby upewnić się, że ten kod działa tylko wtedy, gdy funkcja istnieje.

Ponownie, będziesz musiał dodać kod bezpośrednio do pliku functions.php swojego motywu lub użyć wtyczki do fragmentów kodu, takiej jak WPCode (zalecane):

<?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 Prawdę lub Fałsz.

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 będzie już dostępna, kod po prostu ją pominie, a WordPress będzie mógł normalnie załadować resztę Twojej 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ż zapoznać się z naszym przewodnikiem na temat jak łatwo wyświetlać kod na swojej stronie WordPress lub naszym wyborem najlepszych edytorów kodu dla komputerów Mac i Windows do edycji plików WordPress.

Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz w niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak finansowany jest WPBeginner, dlaczego to ważne i jak możesz nas wesprzeć. Oto nasz proces redakcyjny.

Ostateczny zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi – kolekcji produktów i zasobów związanych z WordPress, które powinien mieć każdy profesjonalista!

Interakcje czytelników

7 CommentsLeave a Reply

  1. Uratowało mi to mnóstwo problemów! Nie mogę policzyć, ile razy dodawałem kod, tylko po to, by mój motyw się zawiesił, ponieważ funkcja nie istniała. Super łatwe do wdrożenia i utrzymuje mój kod w czystości.

    Dzięki za jasne wyjaśnienie

  2. Chciałbym zapytać, czy PHP daje mi błąd o nieistniejącej funkcji PHP, czy taka funkcja może zostać włączona, czy musi to zrobić administrator serwera? I czy jest możliwe, że funkcja zależy od wersji PHP? To znaczy, że pewna funkcja jest dostępna w jednej wersji PHP, ale nie w innej?

    • W takim przypadku funkcja nie istnieje, więc musisz sprawdzić, jaka to konkretna funkcja, aby pomóc znaleźć przyczynę błędu. Następnie możesz skontaktować się z pomocą techniczną w sprawie przyczyny błędu lub usunąć to, co powoduje błąd.

      Admin

  3. Dobra uwaga Kovshenin. Dokładnie wiem, co masz na myśli, ponieważ używałem niestandardowej funkcji z contact form 7 (aby pobrać adres IP z każdego formularza) i za każdym razem, gdy wtyczka była aktualizowana, motyw się psuł.

    Dzięki za wskazówkę

    Joana Pereira

    • Też tak miałem z aktualizacjami wtyczek psującymi motywy! Używanie function_exists() to zdecydowanie przełom w zapobieganiu tym bólom głowy.

  4. Right, only please stop checking for dynamic_sidebar with function_exists in WordPress themes, unless you need to support WordPress 2.2 and below, which I *highly* doubt. Also with the user photo plugin, the whole approach seems to be wrong and redundant to me, it looks like many developers are missing the whole point of pluggable functions…. Oh well :)

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszą polityką komentowania, a Twój adres e-mail NIE zostanie opublikowany. Prosimy NIE używać słów kluczowych w polu nazwy. Prowadźmy osobistą i znaczącą rozmowę.