Es gibt immer mal wieder die Situation, wo man gern PHP-Code im eigenen 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 einzubauen.
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.
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 Funktionen erweitern kann.
Bei mir war es aber z.B. so, dass ich in einer Site ein etwas älteres Werbe-Plugin nutze, welches sehr gut funktioniert, aber keine Widget-Unterstützung mitbringt.
Man hat 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 zu Problemen kommen wenn man PHP-Code auf diese Weise ausführt, so dass man schon Ahnung von PHP und WordPress haben sollte.
functions.php
Eine Möglichkeit ist die Nutzung der functions.php Datei. Diese liegt jedem WordPress-Theme bei und enthält oft nützliche Zusatzfunktionen.



Dort kann man auf die verschiedene Abläufe in WordPress Einfluss nehmen.
Mit dem folgenden Code kann man PHP-Code in einen 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.
Plugins
Einfacher ist es mit Plugins. Im Plugin-Verzeichnis gibt es eine ganze Reihe von Plugins, die das Ausführen von PHP-Code in Widgets und Artikeln ausführen zu können.
So z.B. das Plugin PHP Snippets, welches es ermöglicht eigene kleine Snippet-Dateien mit PHP-Code per Shortcode zu laden.
Ein anderes Plugin ist PHP Code for posts, welches Artikel, Seiten, Custom Post Types und Widgets unterstützt.
Dieses ist noch bequemer, da man direkt im Admin eigene PHP-Snippets anlegen und verwalten kann. Mittels Shortcode fügt man das Snippet der Wahl dann ein.
Fazit
Wer wirklich mal PHP-Code in seinem WordPress-Blog ausführen lassen möchte, kann dies auf verschiedenen Wegen erreichen.
Ob per functions.php oder per Plugin, vorsichtig sollte man damit in jedem Fall umgehen.
Schöne Sache! Habe das bisher mit dem Plugin Exec-PHP gelöst, aber ohne Plugin ist mir immer lieber. :)
Toller Artikel und so hat man auch eine Anleitung wie man damit umgehen soll oder sollte, vor allem wen man sich nicht gut damit auskennt.
Also bevor ich so etwas verbaue, da lasse ich doch lieber Shortcodes im Text-Widget parsen. (Zumal eval() auf dem Server oft deaktiviert ist.)
Ähm… Es kann ja sein dass ich ab-und-zu einen zu pragmatischen Ansatz verfolge, allerdings verwende ich, wenn ich php einbauen muss gerne den IFRAME Befehl – und rufe so das ausserhalb von WordPress gelagerte Skript auf…
Hi,
warum in einem iFrame? Warum nicht per Ajax-Programmierung ausführen?
Grüße
Uli
Hallo, gibt es das auch für Seiten statt für widget_text?
Du meinst ganze Seiten in andere Artikel oder Seiten einfügen? Nicht dass ich wüsste, aber das habe ich auch noch nie vorgehabt.