PHP-Code in WordPress ausführen – Tipps und Plugins

PHP-Code in WordPress ausführen - Tipps und PluginsEs gibt immer mal wieder die Situation, in denen man gern PHP-Code im eigenen WordPress Blog ausführen lassen möchte.

Wer aber nicht direkt im Theme-Code herumwerkeln möchte, hat normalerweise keine Möglichkeit direkt in den Artikeln oder in Widgets PHP-Code einzubinden. Dieser wird nicht ausgeführt, sondern einfach als Text angezeigt.

Doch es gibt zwei Möglichkeiten PHP in WordPress ausführen zu lassen, die ich heute genauer vorstellen möchte. Zum einen handelt es sich um eine bestimmte Datei, zum anderen sind das Plugins.

Warum PHP im WordPress-Blog ausführen?

Das ist eine gute Frage. Im Normalfall benötigt man dies eigentlich nicht, da man WordPress selber ja mit Hilfe von unzähligen Plugins um viele spannende Funktionen erweitern kann.

Bei mir war es aber z.B. mal so, dass ich in einer Website ein etwas älteres Werbe-Plugin genutzt hatte, welches sehr gut funktionierte, aber keine Widget-Unterstützung mitbrachte.

Man hatte die Möglichkeit entweder einen Shortcode in den Artikel einzubauen oder einen PHP-Code (normalerweise) direkt in das Theme. Ich wollte es aber per Widget lösen.

Es gibt also durchaus immer mal wieder Situation, bei denen es sinnvoll ist PHP-Code, z.B. in einem Widget, ausführen zu lassen. Man sollte aber immer erst alle andere Möglichkeiten ausprobieren.

Es kann nämlich zu Problemen kommen, wenn man PHP-Code auf diese Weise ausführt, so dass man schon Ahnung von PHP und WordPress haben sollte. Vorher also am besten ein Backup machen, vor allem wenn man Änderungen an bestehenden Dateien durchführt.

Datei functions.php bearbeiten

Eine Möglichkeit ist die Nutzung der functions.php Datei. Diese liegt jedem WordPress-Theme bei und enthält nützliche Zusatzfunktionen. Dort kann man auf die verschiedene Abläufe in WordPress Einfluss nehmen.

Mit dem folgenden Code kann man PHP-Code z.B. in einem Text-Widget ausführen lassen:

add_filter('widget_text', 'php_ausfuehren', 99);
function php_ausfuehren($text) {
    if (strpos($text, '<' . '?') !== false) {
        ob_start();
        eval('?' . '>' . $text);
        $text = ob_get_contents();
        ob_end_clean();
    }
    return $text;
}

Man kann auch PHP-Includes ermöglichen, wie auf kulturbanause.de geschildert wird.

Um diesen Weg zu nehmen, sollte man sich mit WordPress und PHP aber sehr gut auskennen und um ehrlich zu sein ist das heute nicht mehr der richtige Weg.

Das liegt vor allem daran, dass man durch Änderungen an Theme-Dateien oft andere Probleme verursacht, der zusätzliche PHP-Code nach einen Theme-Update aber auch weg ist. Schließlich wird die Datei dabei überschrieben. Deshalb sollte man vor allem nicht die anderen Theme-Dateien direkt bearbeiten.

Das kann man zwar mit einem Child-Theme umgehen. Darin legt man dann zum Beispiel eine neue functions.php an und kann den PHP-Code darin aufnehmen. Dieses Child-Theme greift natürlich auf das eigentliche Theme zurück, aber hier kann man eben unter anderem zusätzlichen PHP-Code einbauen, der bei einem Update nicht überschrieben wird.

Allerdings finde ich das etwas umständlich und würde das heute nicht mehr so machen.

Plugins für PHP-Code in WordPress

Einfacher geht es mit Plugins. Im offiziellen Plugin-Verzeichnis gibt es eine ganze Reihe von Plugins, die das Ausführen von PHP-Code in Widgets, Artikeln und Seiten erlauben.

So z.B. das Plugin Code Snippets, welches es ermöglicht eigenen Code hinzuzufügen und ausführen zu lassen. Dabei finde ich die Benutzung des Plugins sehr einfach und wer sich mit PHP auskennt, erzielt hier schnell Ergebnisse.

Ein großer Vorteil ist, dass man die Ausführung nur auf das Frontend, also die eigentliche Website, oder das Backend, also den Admin-Bereich von WordPress, beschränken kann. Zudem wird der Code ordentlich formatiert und so findet man sich gut zurecht.

PHP-Code in WordPress ausführen - Tipps und Plugins

Bei einem Theme-Update oder gar einem Theme-Wechsel steht der Code zudem weiterhin zur Verfügung.

Ein anderes Plugin ist Insert PHP Code Snippet, was ähnlich funktioniert, aber automatisch auch einen Shortcode für den eingegebenen PHP Code bereitstellt.

Das ist noch bequemer, da man direkt im Admin eigene PHP-Snippets anlegen und verwalten kann. Mittels Shortcode fügt man den PHP-Code dann an der gewünschten Stelle, z.B. in einem Artikel, ein.

Wenn man direkt PHP-Code in Widgets einfügen und ausführen lassen möchte, kann man sich das Plugin Code Widget anschauen. Das erlaubt unter anderem die Eingabe von PHP-Code in einem Widget und dieser wird dann ausgeführt. Damit umgeht man das separate Anlegen des Code-Snippets, sondern kann diesen direkt in das Widget schreiben.

Das ist aber eher für wenige Code-Zeilen interessant und am Ende nicht ganz so einfach pflegbar.

Eigenes Plugins schreiben

Die dritte Möglichkeit ist es ein eigenes WordPress-Plugin zu schreiben. Das habe ich in der Vergangenheit auch schon häufiger getan, aber dazu muss man sich schon recht gut mit PHP auskennen.

Dann aber stehen einem vielfältige Möglichkeiten zur Verfügung, um zum Beispiel eigene Bereiche im Admin zu erstellen und komplexe Aufgaben damit zu erledigen.

Neben dem PHP Know How sollte man aber auch im Bereich der Sicherheit bewandert sein, denn natürlich bietet eigener PHP-Code und ein eigenes Plugin durchaus eine Angriffsmöglichkeit durch Dritte.

Ein Tutorial zur Entwicklung eines eigenen Plugins findet ihr hier.

Fazit zu eigenem PHP-Code in WordPress

Wer wirklich mal PHP-Code in seinem WordPress-Blog ausführen lassen möchte, kann dies auf verschiedenen Wegen erreichen. Ob per functions.php, Child Theme, vorhandenen Plugins oder eigenem Plugin, vorsichtig sollte man damit in jedem Fall umgehen, denn Probleme und Sicherheitslücken können dazu führen, dass der eigene Blog nicht mehr korrekt funktioniert oder sogar angegriffen werden kann.

Habt ihr schon mal eigenen PHP-Code in eurer WordPress-Website ausgeführt? Wenn ja, welche Variante habt ihr dafür genutzt?

Peer Wandiger

Schreibe einen Kommentar