Beaucoup de sites sont impactés par ce message d’erreur :
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 /var/www/vhosts/mode-et-fantaisie.com/httpdocs/wp-includes/functions.php on line 3457
Le pourquoi est expliqué dans les autres posts, pour s’en sortir :
- déjà ce message n’apparait que si WP_DEBUG est à true dans wp_config, laissez à true pour chercher et corriger vos erreurs mais passez le à false en dehors de ce temps de développement pour éviter de le retrouver comme description de votre site dans Google
- téléchargez en local votre répertoire plugins puis avec un éditeur utilisez la fonction rechercher dans ce répertoire pour trouver tous les appels de WP_Widget et comparer les différentes syntaxes.
Ci-dessous un exemple trouvé dans le plugin “google-adsense-plug-and-play” :
Mauvaise syntaxe :
class GoogleAdsensePlugAndPlayWidget extends WP_Widget
{
function GoogleAdsensePlugAndPlayWidget()
{
$widget_ops = array('classname' => 'GoogleAdsensePlugAndPlayWidget', 'description' => 'Adsense Plug & Play - Sidebar add' );
$this->WP_Widget('GoogleAdsensePlugAndPlayWidget', 'Adsense Plug & Play - Sidebar add', $widget_ops);
}
// ...........
}
Bonne syntaxe une fois corrigée :
class GoogleAdsensePlugAndPlayWidget extends WP_Widget
{
function __construct()
{
$widget_ops = array('classname' => 'GoogleAdsensePlugAndPlayWidget', 'description' => 'Adsense Plug & Play - Sidebar add' );
parent::__construct('GoogleAdsensePlugAndPlayWidget', 'Adsense Plug & Play - Sidebar add', $widget_ops);
}
// ...........
}
Avec un exemple c’est toujours + concret