wordpress-logo-680x400

Suite à la mise à jour de la nouvelle version 4.3.0, WordPress se met à la page et vérifie désormais que tous les appels aux constructeurs de class se font bien avec la méthode __construct!

Exemple d’erreur (après avoir activé la fonction debug de WordPress à TRUE dans le fichier wp-config.php qui se trouve à la racine de votre site)

Message :

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 /…/wp-includes/functions.php on line 3457

Vous pouvez bien-sure simplement remettre la valeurs à FALSE du debug pour ne plus afficher cette erreur, mais le mieux serait quand même de la repérer et surtout de la corriger. De plus c’est vraiment simple et à la porté de tous, même des néophytes!

Explication de l’erreur:

Un constructeur de class, dans les versions antérieur à 5.0 de PHP, s’appelait par le même nom que la class! exemple:

class Ma_Classe{
function Ma_Classe(){
// code qui construit votre class
}
}

sourcehttp://php.net/manual/fr/oop4.constructor.php

depuis la version 5.0, on la déclare par le mot __construct

class Ma_Classe{
function __construct(){
// code qui construit votre class
}
}

sourcehttp://php.net/manual/fr/language.oop5.decon.php

Trouver l’erreur:

Je vous rassure tout de suite, ce n’est pas dans les fichiers de WordPress que vous allez trouver l’erreur mais très certainement dans un Plugin ou dans votre Thème.
Dans notre exemple plus haut, nous remarquons que la méthode obsolète est appelée par la class WP_Widget. Il vous suffit de rechercher sur votre site un fichier qui serait susceptible d’appeler notre class WP_Widget et de la construire avec son nom de class au lieu du nom __construct.

Solution:

Vérifiez d’abord si vos plugin ou votre thème sont bien à jour! Si le développeur à déjà corrigé le problème, alors pourquoi se casser la nénette à le faire nous-même alors qu’un simple clic « Mettre à jour automatiquement » suffit 🙂

Si ce n’est pas le cas, faîtes alors une recherche de parent::WP_Widget ou WP_Widget::WP_Widget() sur l’ensemble de votre site et remplacez le par parent::__construct tout simplement!

Uplodez le fichier et le tout est joué! Si vous n’y arrivez pas, contactez-nous et on pourra surement vous aider 😉

facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

One comment

Laisser un commentaire