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

Beste Praxis: Prüfen, ob die Funktion beim Hinzufügen im WordPress-Theme vorhanden ist

Kürzlich fragte uns ein Benutzer, wie er überprüfen kann, ob eine PHP-Funktion existiert, bevor er neuen Code in seine WordPress-Site einfügt, der sich auf diese Funktion bezieht.

Das Beste an WordPress ist seine Flexibilität, einschließlich der Möglichkeit, Ihre eigenen benutzerdefinierten Funktionen zu Ihrer Website hinzuzufügen. Manchmal kann es jedoch vorkommen, dass Ihr benutzerdefinierter Code nicht funktioniert, weil die Funktion, auf die er sich bezieht, nicht mehr existiert.

In diesem Artikel zeigen wir Ihnen, wie Sie ganz einfach überprüfen können, ob eine Funktion existiert, bevor Sie sie zu Ihrem WordPress-Theme hinzufügen.

Checking if a function exists in WordPress

Warum sollten Sie Ihrem benutzerdefinierten Code eine „If Function Exists“ hinzufügen?

WordPress ist hauptsächlich in der Programmiersprache PHP geschrieben. PHP ist eine serverseitige Programmiersprache, die auf den Servern Ihres WordPress-Hosting-Anbieters läuft.

Da der PHP-Code erst fertiggestellt werden muss, bevor die Seite in den Browsern Ihrer Besucher geladen wird, gibt es gewisse Einschränkungen. Eine dieser Einschränkungen besteht darin, dass, wenn etwas schief geht, die gesamte Seite nicht geladen werden kann.

Wenn in WordPress eine fehlende Funktion die Ausführung des restlichen Codes verhindert, wird dieser angehalten und eine kritische oder fatale Fehlermeldung angezeigt.

WordPress critical error message

Was kann dazu führen, dass eine Funktion plötzlich nicht mehr funktioniert oder verloren geht?

Das ist ein häufiger WordPress-Fehler, als Sie vielleicht denken.

Nehmen wir an, eines Ihrer WordPress-Plugins verfügt über eine Funktion, die Sie in den Kopf- oder Fußzeilenbereich Ihres Themes eingefügt haben. Wenn Sie das Plugin deaktivieren, wird die Funktion verschwinden und den kritischen Fehler auf Ihrer WordPress-Website verursachen.

Schauen wir uns also an, wie man ganz einfach überprüfen kann, ob eine Funktion existiert, bevor man sie in den WordPress-Theme-Dateien ausführt.

Prüfen, ob eine Funktion in WordPress vorhanden ist

Glücklicherweise verfügt die Programmiersprache PHP über eine eingebaute Methode, mit der sich die Existenz einer Funktion vor deren Ausführung leicht überprüfen lässt.

Angenommen, Sie haben eine WordPress-Funktion, die die aktuelle Zeit mit Zeitzoneninformationen anzeigt. Hier ist ein Beispiel-Code-Schnipsel, den Sie verwenden können, um es zu versuchen.

Sie können ihn direkt in die Datei functions.php Ihres Themes einfügen, aber in diesem Tutorial werden wir das WPCode Code Snippet Plugin verwenden, weil es die sicherste und einfachste Methode ist, individuellen 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 auf Ihrem WordPress-Dashboard zu Code Snippets “ + Snippet hinzufügen gehen. Fahren Sie bei Mauszeigerkontakt mit der Option „Fügen Sie Ihren individuellen Code hinzu (neues Snippet)“ und klicken Sie dann auf den Button „Snippet verwenden“, der erscheint.

Adding Custom Code in WPCode

Daraufhin wird eine neue Seite geöffnet, auf der Sie Ihr individuelles Snippet hinzufügen können. Geben Sie einen Titel ein, z. B. „Aktuelle Zeit mit Zeitzone anzeigen“, und fügen Sie dann das unten stehende Codeschnipsel in den Bereich „Codevorschau“ 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>";
}
Paste the Code Snippet Into WPCode

Danach müssen Sie in der Dropdown-Liste „Code-Typ“ die Option „PHP Snippet“ auswählen, um sicherzustellen, dass der Code korrekt ausgeführt wird.

Abschließend sollten Sie den Schalter „Aktivieren“ auf „Ein“ stellen und auf den Button „Snippet speichern“ klicken, um Ihr neues Code-Snippet zu speichern.

Activate and Save the Code Snippet

Um diese Funktion aufzurufen, müssen Sie den folgenden Code an der Stelle in Ihr WordPress-Theme einfügen, an der Sie die aktuelle Zeit anzeigen möchten.

<?php wpb_show_timezone(); ?>

So sah es auf unserer Test-Website aus.

Function runs normally

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

Critical error in WordPress

Fügen wir eine Prüfung hinzu, die sicherstellt, dass dieser Code nur ausgeführt wird, wenn die Funktion existiert.

Auch hier müssen Sie den Code direkt in die Datei functions.php Ihres Themes einfügen oder ein Code-Snippet-Plugin wie WPCode verwenden (empfohlen):

<?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 fügten wir eine if-else-Bedingung hinzu, um je nach Verfügbarkeit der Funktion entsprechende Maßnahmen zu ergreifen.

Wenn die Funktion nicht mehr verfügbar ist, wird sie vom Code einfach übersprungen, und WordPress kann den Rest Ihrer Website normal laden.

Missing function skipped

Wir hoffen, dass dieser Artikel Ihnen geholfen hat zu erfahren, wie Sie überprüfen können, ob eine Funktion in WordPress existiert. Vielleicht interessiert Sie auch unser kompletter WordPress-Leitfaden zur Fehlerbehebung oder unsere Expertenauswahl für die besten Drag-and-Drop-WordPress-Seitenerstellungsprogramme.

Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, dass wir möglicherweise eine Provision verdienen, wenn Sie auf einige unserer Links klicken. Mehr dazu erfahren Sie unter Wie WPBeginner finanziert wird , warum das wichtig ist und wie Sie uns unterstützen können. Hier finden Sie unseren redaktionellen Prozess .

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.

Das ultimative WordPress Toolkit

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

Reader Interactions

4 KommentareEine Antwort hinterlassen

  1. Syed Balkhi

    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

    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

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

Eine Antwort hinterlassen

Danke, dass du einen Kommentar hinterlassen möchtest. Bitte beachte, dass alle Kommentare nach unseren kommentarpolitik moderiert werden und deine E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwende KEINE Schlüsselwörter im Namensfeld. Lass uns ein persönliches und sinnvolles Gespräch führen.