probleme avec create_function

Ludwig75
Invité n'ayant pas de compte PHPfrance

13 sept. 2021, 13:10

Bonjour
j'ai un plugin qui plante car il fait appel à la fonction désuète create_function

la ligne de code est la suivante :

add_action( 'widgets_init', create_function('', 'return register_widget("Smooth_Slider_Simple_Widget");') );

je n'arrive pas à changer la fonction correctement en la remplaçant par function(){return "";}

Quelqu'un a t'il une solution à me soumettre ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 sept. 2021, 15:14

create_function() est à remplacer par la syntaxe des fonctions anonymes :
https://www.php.net/manual/fr/functions.anonymous.php

C'est ce qu'il semble que tu aies essayé pourtant et ça devrait marcher... Tu peux nous donner la ligne complète que tu as testée et le message d'erreur que ça a provoqué ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Ludwig75
Invité n'ayant pas de compte PHPfrance

13 sept. 2021, 15:38

Merci de votre réponse

J'ai mis comme nouvelle ligne :
add_action( 'widgets_init', function(){return register_widget "Smooth_Slider_Simple_Widget";});

le log des erreur me donne toujours une PHP Deprecated

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 sept. 2021, 16:11

Il te manque les parenthèses dans l'appel de register_widget(...)

Quel est le message d'erreur exact ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Ludwig75
Invité n'ayant pas de compte PHPfrance

13 sept. 2021, 17:04

Voilà le message d'erreur

[Mon Sep 13 15:31:56.817774 2021] [fastcgi:error] [pid 18838:tid 140539768854272] [client 80.253.235.74:0] FastCGI: server "/home/clients/254af6843c2ef9637f59babc8b78b443/....../.fpm/php5.external" stderr: PHP message: PHP Deprecated: Function create_function() is deprecated in /home/clients/254af6843c2ef9637f59babc8b78b443/web/smkrp/wp-content/plugins/smooth-slider/slider_versions/widgets_1.php on line 52

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 sept. 2021, 17:59

Function create_function() is deprecated in [...]/wp-content/plugins/smooth-slider/slider_versions/widgets_1.php on line 52
Du coup, le message d'erreur est explicite, c'est qu'il te reste des endroits dans ton code où il traine encore des create_function()


A noter que ce plugin de slider n'a pas été mis à jour depuis 2018, et que son site officiel ne fonctionne plus (avec la même erreur que celle que tu rencontres :-D ), donc ma recommandation serait plutôt que tu cherches un autre plugin de slider pour remplacer celui-là.
Quand tout le reste a échoué, lisez le mode d'emploi...