Si vous avez mis à jour votre site en 4.3, et qu’en mode débogage vous avez ce message concernant un plugin actif qui utilise PHP 4 :
Notice: La méthode constructor appelée pour WP_Widget est obsolète depuis la version 4.3.0 ! Veuillez utiliser __construct() à la place. in …
ou en anglais
Notice: The called constructor method for WP_Widget
is deprecated since version 4.3.0!
Cette « avis » concerne également les thèmes qui utilisent les anciens codes pour créer des Widgets.
Pour effacer ce message un peu effrayant, il y a plusieurs méthodes:
Enlever le mode débogue: define(‘WP_DEBUG’, false);
Éditer le fichier wp-config.php qui se trouve à la racine de votre WordPress (en principe)
Rechercher et remplacer le code suivant
define('WP_DEBUG', true);
par
define('WP_DEBUG', false);
et attendez la mise à jour de votre plugin ou thème.
Ce sont des méthodes rapides du genre « cache misère » mais elles fonctionnent …
(ce n’est qu’une alerte et non une erreur)
La méthode propre pour mettre à jour le code pour créer les Widgets
Si vous voulez jouer au développeur WordPress, vous pouvez corriger le problème en modifiant le code obsolète:
- Localiser le(s) plugin(s) défaillant(s) (désactivez tous les plugin et réactivez-les un par un) quand le message apparaît, bonne pioche !
- Télécharger le plugin sur votre ordinateur (par ftp ou depuis le dépôt WordPress selon le plugin)
- Éditer les fichiers pour trouver WP_Widget (pas facile hein ?)
Comme par exemple ceci:
[sourcecode language=’php’]
$this->WP_Widget(
‘layers-widget-‘ . $this->widget_id ,
$this->widget_title,
$widget_ops,
$control_ops
);
[/sourcecode]
à corriger en
[sourcecode language=’php’]
parent::__construct(
‘extension-slug’ . ‘-widget-‘ . $this->widget_id ,
$this->widget_title,
$widget_ops,
$control_ops
);
[/sourcecode]
Voir le codex WordPress pour plus d’info.
Comme chaque plugin ou thème sont développés par des codeurs différents, il n’y a pas de solution universelle.
Au besoin vous pouvez me contacter.
Laisser un commentaire