Wie kann ich PHP im WordPress-Widget ausführen?

Wenn du PHP im WordPress-Widget ausführen willst, bietet sich folgende Möglichkeit.

Du kannst in WordPress-Widgets oder im Text-Editor standardmäßig kein PHP ausführen. Im Texteditor selbst kannst du gar kein PHP ausführen. Doch mit dieser kleinen Anpassung klappt für die Widgets ganz einfach. Wenn du dabei Hilfe brauchst, kannst du sich gerne an das WordPress-Team der Ideenfabrik wenden.

So wirst du selbst aktiv:

Gib in der functions.php deines Themes den nachfolgenden Code ein. Die Datei findest du im Hauptordner deines Themes. Auf den Hauptorder greifst du am besten per SFTP zu. Durch das Hinzufügen des nachfolgenden Codes aktivierst du die Funktion, welche prüft, ob in deinen Widgets PHP enthalten ist.

// Ideenfabrik: PHP im Widget erkennen
add_filter('widget_text', 'idfenablephp', 99);
function idfenablephp($text) {
  if (strpos($text, '<' . '?php') !== false) {
    ob_start();
    eval('?' . '>' . $text);
    $text = ob_get_contents();
    ob_end_clean();
  }

  return $text;
}

Im Anschluss rufst du deine Widget im WordPress-Backend auf. Dort suchst du dir eine Widget-Area aus, in welcher du die Funktion nutzen willst. Dort bindest du ein neues Text-Widget ein. Achte darauf, dass der Editor nicht auf „Visuell“ sondern auf „Text“ steht. Nur im Text-Modus wird der Inhalt 1-zu-1 übernommen und die Sonderzeichen wie z.B. „<", werden nicht konvertiert und als solche gespeichert. Im Textbereich kannst du nun PHP-Befehle eingeben, welchen du in einschließt und es sollte funktionieren:

echo "Text im WordPress-Widget durch PHP.";

Hinweis:

Bitte beachten Sie, dass die Verwendung von eval() in PHP ein Sicherheitsrisiko darstellt, da es beliebigen Code ausführen kann. Es ist daher ratsam, diese Methode nur zu verwenden, wenn Sie die Kontrolle über den gesamten Code haben, der ausgeführt wird, und sicherstellen können, dass kein schädlicher Code ausgeführt wird.

Eine Alternative ist, den PHP-Code als Shortcode auszuführen. Dies ist auch der sicherere Weg.

2 Kommentare zu “Wie kann ich PHP im WordPress-Widget ausführen?

  1. Marcel sagt:

    Hallo, leider funktionieren die 9-10 Zeilen Code nicht in der function.php.
    Es erscheint bezogen auf die Zeile 4:
    syntax error, unexpected token „;“

    Es fehlt eventuell eine Klammer „)“ und eine öffnende geschweifte Klammer „{„.

    Leider zeigte es keine Wirkung beim Ausprobieren PHP Code über ein Text Widget darzustellen.
    Ich freue mich über eine Antwort.

Haben Sie Fragen oder Feedback? Schreiben Sie hier:

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.