PHP Codes und Shortcodes in WordPress Text Widgets ohne Plugin verwenden

Standardmäßig kann man in WordPress Text Widgets, zumindest in der derzeit aktuellsten Version 4.2.4, noch keinen PHP Code ausgeführen. Da dies aber durchaus sehr nützlich sein kann werden wir diese Funktion mit einem kleinen Code Schnippsel nachrüsten. Natürlich könnten wir diese Funktion auch per Plugin nachrüsten aber man kann diesen Code auch direkt in die functions.php des Themes einfügen.

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

Mit diesem Schnippsel können wir jetzt in den Text Widgets von WordPress ganz normalen PHP Code ausführen zB <?php echo date ( 'j.n.Y' ); ?> oder was auch immer. Alle die jetzt eine genaue Erklärung des Code Schnippsels wollen verweise ich zu Emanuele Feronato. Treffender könnte man es ohnehin nicht beschreiben. Eine kleine Codezeile fehlt mir jedoch noch. Schließlich möchten wir auch noch zusätzlich Shortcodes in WordPress Text Widgets verwenden. Mit folgender Zeile fügen wir die Funktion hinzu.

add_filter( 'wiget_text', 'do_shortcode' );

Und schon können wir auch Shortcodes in den Text Widgets nutzen. Wie Shortcodes erstellt und verwendet werden können sie in meinem Artikel Einen eigenen Shortcode erstellen und in WordPress verwenden nachlesen.




Bitte beachten Sie, dass dieser Beitrag bereits vor über einem Jahr geschrieben wurde und unter umständen nicht mehr aktuell ist.