Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Puchar WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Najlepsze praktyki: Sprawdź, czy funkcja istnieje podczas dodawania w motywie WordPress

Uwaga redakcyjna: Otrzymujemy prowizję z linków partnerskich na WPBeginner. Prowizje nie mają wpływu na opinie i oceny naszych redaktorów. Dowiedz się więcej o Proces redakcyjny.

Niedawno jeden z użytkowników zapytał nas, jak sprawdzić, czy funkcja PHP istnieje przed dodaniem nowego kodu do twojej witryny WordPress, który się na niej opiera.

Najlepszą częścią WordPressa jest jego elastyczność, w tym możliwość dodawania własnych konfiguratorów do twojej witryny internetowej. Czasami jednak twój własny konfigurator może nie działać, ponieważ funkcja, do której się odwołuje, już nie istnieje.

W tym artykule pokażemy, jak łatwo sprawdzić, czy dana funkcja istnieje przed dodaniem jej do twojego motywu WordPress.

Checking if a function exists in WordPress

Dlaczego warto dodać „If Function Exists” do twojego własnego kodu?

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

Ponieważ kod PHP musi zakończyć działanie przed wczytywaniem strony w przeglądarkach twoich użytkowników, istnieją pewne ograniczenia. Jednym z nich jest to, że jeśli coś pójdzie nie tak, może to uniemożliwić wczytywanie całej strony.

W WordPressie, jeśli brak funkcji uniemożliwia uruchomienie reszty kodu, zatrzymuje się on i wyświetla komunikat o błędzie krytycznym lub błędzie krytycznym.

WordPress critical error message

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

Jest to bardziej powszechny błąd WordPressa, niż mogłoby się wydawać.

Załóżmy na przykład, że jedna z twoich wtyczek WordPress posiada funkcję, którą dodałeś do nagłówka lub stopki twojego motywu. Wyłączanie wtyczki sprawi, że funkcja zniknie i spowoduje błąd krytyczny na twojej witrynie internetowej WordPress.

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

Sprawdzanie istnienia funkcji w WordPress

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 obecny, aktualny czas z informacjami o strefie czasowej. Oto przykładowy fragment kodu, którego możesz użyć, aby to wypróbować.

Możesz dodać go bezpośrednio do pliku functions.php twojego motywu, ale w tym poradniku użyjemy wtyczki fragmentu kodu WPCode, ponieważ jest to najbezpieczniejszy i najłatwiejszy sposób dodawania własnego kodu w WordPress.

Najpierw należy zainstalować i włączyć darmową wtyczkę WPCode. Jeśli potrzebujesz pomocy, zapoznaj się z naszym przewodnikiem dla początkujących krok po kroku, jak zainstalować wtyczkę WordPress.

Po włączaniu, musisz przejść do Code Snippets ” + Add Snippet na twoim kokpicie WordPress. Następnie należy najechać kursorem myszy na opcję „Add Your Custom Code (New Snippet)”, a następnie kliknąć przycisk „Use snippet”, który się pojawi.

Adding Custom Code in WPCode

Spowoduje to otwarcie nowej strony, na której można utworzyć własny fragment kodu. Wpisz tytuł, na przykład „Display Current Time With Timezone”, a następnie wklej poniższy fragment kodu do panelu 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>";
}
Paste the Code Snippet Into WPCode

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

Na koniec należy przełączyć przełącznik włączania na pozycję włączoną i kliknąć przycisk „Zapisz fragment kodu”, aby zapisać twój nowy fragment kodu.

Activate and Save the Code Snippet

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

<?php wpb_show_timezone(); ?>

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

Function runs normally

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

Wywołanie funkcji zepsuje twoją witrynę internetową w ten sposób.

Critical error in 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 twojego motywu lub użyć wtyczki fragmentu 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(). Funkcja ta sprawdza, czy funkcja istnieje i zwraca wartość True lub False.

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

Teraz, gdy funkcja nie jest już dostępna, kod po prostu ją pominie, a WordPress będzie mógł normalnie wczytywać resztę twojej witryny internetowej.

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 kompletnym przewodnikiem po rozwiązywaniu problemów z WordPressem lub naszymi typami ekspertów dla najlepszych kreatorów stron WordPress typu „przeciągnij i upuść„.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

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

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Najlepszy zestaw narzędzi WordPress

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

Reader Interactions

4 komentarzeZostaw odpowiedź

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Joana Pereira says

    Good call Kovshenin. I know exactly what you mean because I was using a custom function with contact form 7 (to retrieve the ip address on each form) and every time the plugin was updated, the theme broke.

    Thanks for the tip

    Joana Pereira

  3. kovshenin says

    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 naszymi polityka komentarzy, a Twój adres e-mail NIE zostanie opublikowany. NIE używaj słów kluczowych w polu nazwy. Przeprowadźmy osobistą i konstruktywną rozmowę.