Einer unserer technisch versierteren Leser fragte uns kürzlich, wie man die Existenz einer PHP-Funktion überprüft, bevor man neuen Code in eine WordPress-Website integriert. Dies ist wichtig, um sicherzustellen, dass Ihre Website reibungslos läuft und Fehler vermieden werden.
Eine der Stärken von WordPress ist seine Flexibilität, und das WPBeginner-Team fügt regelmäßig benutzerdefinierte Funktionen hinzu, um die Funktionalität unserer Website zu verbessern. Wir verstehen, dass benutzerdefinierter PHP-Code fehlschlagen kann, wenn er eine Funktion aufruft, die nicht mehr existiert oder noch nicht definiert wurde.
In diesem Artikel zeigen wir Ihnen, wie Sie einfach überprüfen können, ob eine Funktion existiert, bevor Sie sie zu Ihrem WordPress-Theme hinzufügen, um potenzielle Fehler in Ihrem Code zu vermeiden.

Warum „If Function Exists“ zu Ihrem benutzerdefinierten Code hinzufügen?
WordPress ist hauptsächlich in der PHP-Programmiersprache geschrieben. PHP ist eine serverseitige Programmiersprache, die auf den Servern Ihres WordPress-Hosting-Anbieters läuft.
Da PHP-Code ausgeführt werden muss, bevor die Seite in den Browsern Ihrer Besucher geladen wird, gibt es bestimmte Einschränkungen. Eine dieser Einschränkungen ist, dass, wenn etwas schief geht, die gesamte Seite nicht geladen werden kann.
In WordPress, wenn eine fehlende Funktion verhindert, dass der Rest des Codes ausgeführt wird, stoppt er und zeigt eine Meldung über einen kritischen Fehler oder einen fatalen Fehler an.

Was kann dazu führen, dass eine Funktion plötzlich nicht mehr funktioniert oder verschwindet?
Es ist ein häufigerer WordPress-Fehler, als Sie vielleicht denken.
Nehmen wir zum Beispiel an, eines Ihrer WordPress-Plugins enthält eine Funktion, die Sie dem Header- oder Footer-Bereich Ihres Themes hinzugefügt haben. Wenn Sie das Plugin deaktivieren, verschwindet die Funktion und verursacht den kritischen Fehler auf Ihrer WordPress-Website.
Nichtsdestotrotz wollen wir uns ansehen, wie man einfach prüft, ob eine Funktion existiert, bevor man sie in Ihren WordPress-Theme-Dateien ausführt.
Überprüfen, ob eine Funktion in WordPress existiert
Glücklicherweise verfügt die Programmiersprache PHP über eine integrierte Methode, um die Existenz einer Funktion einfach zu überprüfen, bevor sie ausgeführt wird.
Nehmen wir an, Sie haben eine WordPress-Funktion, die die aktuelle Uhrzeit mit Zeitzoneninformationen anzeigt. Hier ist ein Beispiel-Code-Snippet, das Sie zum Ausprobieren verwenden können.
Sie können ihn direkt in die functions.php-Datei Ihres Themes einfügen, aber in diesem Tutorial verwenden wir das Code-Snippet-Plugin WPCode, da dies der sicherste und einfachste Weg ist, benutzerdefinierten Code in WordPress hinzuzufügen.
Zuerst müssen Sie das WPCode Free Plugin installieren und aktivieren. Wenn Sie dabei Hilfe benötigen, lesen Sie bitte unsere Schritt-für-Schritt-Anleitung für Anfänger, wie man ein WordPress-Plugin installiert.
Nach der Aktivierung müssen Sie in Ihrem WordPress-Dashboard zu Code-Schnipsel » + Schnipsel hinzufügen gehen. Dort fahren Sie mit der Maus über die Option „Benutzerdefinierten Code hinzufügen (Neuer Schnipsel)“ und klicken dann auf die Schaltfläche „Schnipsel verwenden“, die erscheint.

Dies öffnet eine neue Seite, auf der Sie Ihren benutzerdefinierten Schnipsel hinzufügen können. Geben Sie einen Titel wie „Aktuelle Uhrzeit mit Zeitzone anzeigen“ ein und fügen Sie dann den untenstehenden Code-Schnipsel in den Code-Vorschau-Bereich ein.
//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>";
}

Danach müssen Sie aus der Dropdown-Liste „Code Type“ die Option „PHP Snippet“ auswählen, um sicherzustellen, dass der Code korrekt ausgeführt wird.
Schließlich sollten Sie den Schalter „Aktivieren“ auf „Ein“ stellen und auf die Schaltfläche „Snippet speichern“ klicken, um Ihr neues Code-Snippet zu speichern.

Um diese Funktion aufzurufen, müssen Sie den folgenden Code irgendwo in Ihrem WordPress-Theme einfügen, wo Sie die aktuelle Uhrzeit anzeigen möchten.
<?php wpb_show_timezone(); ?>
So sah es auf unserer Test-Website aus.

Was würde nun passieren, wenn der Code, der für die Ausführung dieser Funktion verantwortlich ist, verschwindet?
Der Aufruf der Funktion wird Ihre Website wie folgt zum Absturz bringen.

Fügen wir eine Prüfung hinzu, um sicherzustellen, dass dieser Code nur ausgeführt wird, wenn die Funktion existiert.
Auch hier müssen Sie den Code entweder direkt in die functions.php-Datei Ihres Themes einfügen oder ein Code-Snippet-Plugin wie WPCode (empfohlen) verwenden:
<?php
if( function_exists('wpb_show_timezone')) {
wpb_show_timezone();
} else {
// do nothing
}
?>
In diesem Code verwenden wir die Funktion function_exists(). Diese Funktion prüft, ob eine Funktion existiert und gibt True oder False zurück.
Dann haben wir eine if-else-Bedingung hinzugefügt, um je nach Verfügbarkeit der Funktion entsprechende Maßnahmen zu ergreifen.
Wenn die Funktion nicht mehr verfügbar ist, überspringt der Code sie einfach, und WordPress kann den Rest Ihrer Website normal laden.

Wir hoffen, dieser Artikel hat Ihnen geholfen zu lernen, wie Sie überprüfen, ob eine Funktion in WordPress existiert. Sie möchten vielleicht auch unseren Leitfaden zum einfachen Anzeigen von Code auf Ihrer WordPress-Website oder unsere Expertenauswahl der besten Code-Editoren für Mac und Windows zur Bearbeitung von WordPress-Dateien sehen.
Wenn Ihnen dieser Artikel gefallen hat, abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Video-Tutorials. Sie finden uns auch auf Twitter und Facebook.
kzain
Hat mir viel Ärger erspart! Ich kann Ihnen gar nicht sagen, wie oft ich Code hinzugefügt habe, nur damit mein Theme abstürzt, weil eine Funktion nicht vorhanden war. Super einfach zu implementieren und hält meinen Code sauber.
Danke für die klare Erklärung
Jiří Vaněk
Ich möchte fragen, ob PHP mir einen Fehler wegen einer nicht existierenden PHP-Funktion gibt, kann eine solche Funktion aktiviert werden, oder muss dies vom Serveradministrator erfolgen? Und ist es möglich, dass die Funktion von der PHP-Version abhängt? Das heißt, dass eine bestimmte Funktion in einer PHP-Version verfügbar ist, aber nicht in einer anderen?
WPBeginner Support
In diesem Fall existiert die Funktion nicht, sodass Sie untersuchen müssen, um welche spezifische Funktion es sich handelt, um herauszufinden, was den Fehler verursacht. Danach können Sie entweder den Support bezüglich der Fehlerursache kontaktieren oder die Fehlerursache entfernen.
Admin
Rakib
wirklich hilfreich
Joana Pereira
Guter Punkt, Kovshenin. Ich weiß genau, was Sie meinen, denn ich habe eine benutzerdefinierte Funktion mit Contact Form 7 verwendet (um die IP-Adresse bei jedem Formular abzurufen), und jedes Mal, wenn das Plugin aktualisiert wurde, brach das Theme zusammen.
Danke für den Tipp
Joana Pereira
kzain
War auch schon da, dass Plugin-Updates Themes kaputt gemacht haben! Die Verwendung von function_exists() ist definitiv ein Game-Changer, um diese Kopfschmerzen zu vermeiden.
kovshenin
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