Wie kann ich PHP über einen Shortcode ausführen, in einem WordPress-Widget?

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.

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.

function custom_php_code_1($atts) {
    // Dein PHP-Code hier
    $output = "

Dieser Text wird über den ersten Shortcode gezeigt.

"; return $output; } add_shortcode('customphp1', 'custom_php_code_1'); function custom_php_code_2($atts) { // Dein PHP-Code hier $date = date('Y-m-d H:i:s'); $output = "

Aktuelles Datum und Uhrzeit: $date

"; return $output; } add_shortcode('customphp2', 'custom_php_code_2');

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.

In diesem Beispiel haben wir zwei Funktionen definiert: custom_php_code_1() und custom_php_code_2(). Jede Funktion ist mit einem eindeutigen Shortcode verknüpft: [customphp1] und [customphp2].

Sie können diese Shortcodes dann in Ihrem Text-Widget verwenden, genau wie im vorherigen Beispiel. Jeder Shortcode wird durch den Ausgabewert der zugehörigen Funktion ersetzt, wenn die Seite angezeigt wird.

Bitte beachten Sie, dass Sie in jeder Funktion keinen beliebigen PHP-Code ausführen können, sondern nur den Code, den Sie direkt in die Funktion einfügen. Dies ist sicherer als die Verwendung von eval(), da kein Code ausgeführt wird, der von einer unsicheren Quelle stammt.

Haben Sie Fragen oder Feedback? Schreiben Sie hier:

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