web-dev-qa-db-fra.com

Comment courir PHP code dans Text Widget sans plugin WP 4.4

Avant j'avais le code suivant dans le fichier 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;
}

Ensuite, j'ai mis à jour WP vers la version 4.4.1 et maintenant, il ne fonctionne plus. N 'y a-t-il pas une autre solution?

1
IVO

Mieux vaut écrire votre propre widget qui fait précisément ce dont vous avez besoin au lieu de quelque chose comme ça.

Cependant, si vous voulez vraiment exécuter PHP de manière arbitraire dans un widget, utilisez un plug-in spécialement conçu pour cette tâche: https://wordpress.org/plugins/php-code-widget/

Je maintiens ce plugin spécifiquement pour que les gens ne fassent pas des choses comme ce que vous avez dans votre message. Le widget de code PHP est essentiellement une copie du widget de texte, mais il exécute également PHP Code.

Néanmoins, PHP Les widgets de code sont une mauvaise idée et doivent être évités. Créez plutôt un widget personnalisé avec votre code statique.

3
Otto

J'ai rencontré le même problème, ce que j'ai noté est, professionnellement, il n'est pas conseillé d'utiliser plugin ou functions.php pour exécuter php dans des widgets, c'est pourquoi, comme maintenant, la technique de functions.php ne fonctionne pas.

Il est conseillé de construire votre propre widget, c'est ce que je vais faire.

0