Vertrauenswürdige WordPress-Tutorials, wenn Sie sie am dringendsten benötigen.
Anfängerleitfaden für WordPress
WPB Cup
25 Millionen+
Websites, die unsere Plugins verwenden
16+
Jahre WordPress-Erfahrung
3000+
WordPress-Tutorials von Experten

Best Practice: Prüfen Sie, ob eine Funktion beim Hinzufügen in WordPress-Themes existiert

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.

Überprüfen, ob eine Funktion in WordPress existiert

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.

Kritische Fehlermeldung von WordPress

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.

Benutzerdefinierten Code in WPCode hinzufügen

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>";
}
Fügen Sie den Code-Schnipsel in WPCode ein

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.

Code-Snippet aktivieren und 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.

Funktion läuft normal

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.

Kritischer Fehler in WordPress

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.

Fehlende Funktion übersprungen

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.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, wenn Sie auf einige unserer Links klicken, können wir eine Provision verdienen. Sehen Sie wie WPBeginner finanziert wird, warum das wichtig ist und wie Sie uns unterstützen können. Hier ist unser Redaktionsprozess.

Das ultimative WordPress-Toolkit

Erhalten Sie KOSTENLOSEN Zugang zu unserem Toolkit – eine Sammlung von WordPress-bezogenen Produkten und Ressourcen, die jeder Profi haben sollte!

Leserinteraktionen

7 CommentsLeave a Reply

  1. 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

  2. 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?

    • 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

  3. 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

    • 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.

  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 :)

Hinterlassen Sie eine Antwort

Vielen Dank, dass Sie einen Kommentar hinterlassen. Bitte beachten Sie, dass alle Kommentare gemäß unserer Kommentarrichtlinie moderiert werden und Ihre E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwenden Sie KEINE Schlüsselwörter im Namensfeld. Führen wir ein persönliches und bedeutungsvolles Gespräch.