web-dev-qa-db-de.com

Wie läuft man? PHP Code im Text Widget ohne Plugin WP 4.4

Vorher hatte ich folgenden Code in der function.php

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

Dann habe ich WP auf die Version 4.4.1 aktualisiert und jetzt funktioniert es nicht mehr. Gibt es eine andere Lösung?

1
IVO

Schreiben Sie lieber Ihr eigenes Widget, das genau das tut, was Sie brauchen, anstatt so etwas.

Wenn Sie jedoch wirklich willkürlich PHP in einem Widget ausführen möchten, verwenden Sie ein speziell für diese Aufgabe entwickeltes Plugin: https://wordpress.org/plugins/php-code-widget/

Ich pflege dieses Plugin speziell, damit die Leute nicht dazu greifen, Dinge zu tun, wie Sie sie in Ihrem Beitrag haben. Das PHP Code-Widget ist im Grunde eine Kopie des Text-Widgets, auf dem jedoch auch PHP Code ausgeführt wird.

Trotzdem sind PHP Code Widgets eine schlechte Idee ™ und sollten vermieden werden. Erstellen Sie stattdessen ein benutzerdefiniertes Widget mit Ihrem statischen Code.

3
Otto

Ich habe das gleiche Problem, was ich bemerkt habe, ist, professionell ist es nicht ratsam, plugin oder functions.php für die Ausführung von PHP in Widgets zu verwenden, deshalb wie jetzt, dass functions.php-Technik nicht funktioniert.

Es wird empfohlen, ein eigenes Widget zu erstellen. Dies ist, was ich tun werde.