Comment résoudre l’erreur ‘Deprecated function’ sur WordPress ? Guide complet

Rate this post

Comprendre l’erreur ‘Deprecated function’ sur WordPress

Si vous gérez un site WordPress, vous avez peut-être déjà croisé un message du type : Deprecated: Function create_function() is deprecated ou Deprecated: bp_core_get_userlink() is deprecated since version 2.7.0! Use bp_core_get_user_domain() instead.. Cette erreur indique qu’une fonction utilisée par un thème, un plugin ou même le cœur de WordPress est devenue obsolète et sera supprimée dans une future version. Elle ne bloque pas toujours le site, mais elle peut ralentir le chargement, afficher des warnings en front-end ou en back-office, et surtout compromettre la sécurité et la compatibilité future.

Dans cet article, nous allons voir pourquoi cette erreur se produit, comment l’identifier précisément, et surtout comment la corriger définitivement. Que vous soyez débutant ou développeur, vous trouverez des solutions adaptées à votre niveau.

Pourquoi une fonction devient-elle ‘deprecated’ dans WordPress ?

WordPress évolue constamment pour améliorer les performances, la sécurité et la compatibilité avec les nouvelles normes PHP. Les développeurs de WordPress remplacent d’anciennes fonctions par des versions plus efficaces ou plus sûres. Lorsqu’une fonction est marquée comme deprecated, cela signifie qu’elle est encore présente pour des raisons de compatibilité ascendante, mais qu’elle ne doit plus être utilisée. Elle sera supprimée dans une version majeure future.

Les causes courantes de l’erreur ‘Deprecated function’ incluent :

  • Un thème ou un plugin qui n’a pas été mis à jour depuis longtemps.
  • L’utilisation de fonctions PHP obsolètes comme create_function(), mysql_*, etc.
  • Des fonctions WordPress dépréciées comme get_currentuserinfo() (remplacée par wp_get_current_user()).
  • Un code personnalisé dans le fichier functions.php du thème enfant qui utilise une ancienne API.

Identifier la source de l’erreur ‘Deprecated function’

Avant de corriger, il faut localiser l’origine. Voici les étapes à suivre :

1. Activer le mode débogage de WordPress

Dans le fichier wp-config.php, ajoutez ces lignes (si elles ne sont pas déjà présentes) :

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Ensuite, reproduisez l’erreur. Un fichier debug.log sera créé dans /wp-content/. Consultez-le : il contient la trace complète avec le nom du fichier et le numéro de ligne.

2. Désactiver tous les plugins

Si l’erreur disparaît après avoir désactivé tous les plugins, réactivez-les un par un pour identifier le coupable. Faites de même avec le thème : passez temporairement sur un thème par défaut (Twenty Twenty-Four par exemple).

3. Analyser le message d’erreur

Le message indique généralement le nom de la fonction dépréciée et le fichier concerné. Par exemple : Deprecated: bp_core_get_userlink() is deprecated since version 2.7.0! Use bp_core_get_user_domain() instead. in /wp-content/plugins/buddypress/bp-core/bp-core-functions.php on line 123. Ici, le plugin BuddyPress est en cause.

Solutions pour corriger l’erreur ‘Deprecated function’

Selon la source, plusieurs approches s’offrent à vous.

Mettre à jour le thème ou le plugin

La solution la plus simple : vérifiez si une mise à jour est disponible pour le thème ou le plugin concerné. Les développeurs corrigent souvent les fonctions dépréciées dans les nouvelles versions. Rendez-vous dans le tableau de bord WordPress > Mises à jour.

Remplacer la fonction obsolète dans le code

Si vous avez des compétences en développement, vous pouvez éditer directement le fichier incriminé. Par exemple, remplacez create_function() par une fonction anonyme (closure) ou une fonction nommée. Avant toute modification, créez une sauvegarde complète du site et testez sur un environnement de staging.

Exemple : Si vous avez $callback = create_function('$a', 'return $a;');, remplacez-le par $callback = function($a) { return $a; };.

Utiliser un plugin de compatibilité

Pour les utilisateurs non techniques, il existe des plugins comme Deprecated Functions ou WP Deprecated qui peuvent temporairement supprimer l’affichage des erreurs. Cependant, ce n’est qu’une solution de contournement : l’erreur persiste en arrière-plan. Privilégiez une correction définitive.

Contacter le développeur

Si le thème ou le plugin est obsolète et non maintenu, contactez son auteur. S’il n’y a pas de réponse, envisagez de remplacer le composant par une alternative plus récente.

Prévenir l’erreur ‘Deprecated function’ à l’avenir

Voici une checklist pour éviter ce type d’erreur :

  • Mettez à jour régulièrement WordPress, vos thèmes et plugins.
  • Utilisez des thème et plugins réputés, activement maintenus et compatibles avec la dernière version de WordPress.
  • Testez les mises à jour sur un site de staging avant de les appliquer en production.
  • Évitez le code obsolète dans vos développements personnalisés. Consultez la documentation officielle de WordPress pour connaître les fonctions recommandées.
  • Surveillez les logs d’erreur régulièrement pour détecter les dépréciations tôt.

Comparaison : solutions temporaires vs définitives

Solution Avantages Inconvénients
Masquer les erreurs (via WP_DEBUG_DISPLAY) Rapide, ne nécessite pas de compétences Ne corrige pas le problème, l’erreur reste dans les logs
Mettre à jour le composant Correction officielle, durable Peut nécessiter une mise à jour majeure
Remplacer le code manuellement Solution sur mesure Risque d’erreur si mal fait, nécessite des compétences
Changer de thème/plugin Solution radicale Peut modifier l’apparence ou les fonctionnalités

Erreurs fréquentes à éviter

Lorsque vous corrigez une fonction dépréciée, ne commettez pas ces erreurs :

  • Modifier directement le cœur de WordPress : cela sera écrasé lors de la prochaine mise à jour. Utilisez plutôt un thème enfant ou un plugin personnalisé.
  • Ignorer l’erreur : elle peut cacher un problème plus grave et votre site pourrait planter après une mise à jour.
  • Utiliser des fonctions alternatives sans vérifier leur compatibilité : lisez la documentation pour vous assurer que la nouvelle fonction fait exactement la même chose.
  • Oublier de sauvegarder : avant toute modification, faites une sauvegarde complète de la base de données et des fichiers.

Questions fréquentes (FAQ)

L’erreur ‘Deprecated function’ empêche-t-elle mon site de fonctionner ?

Pas toujours. Dans de nombreux cas, le site continue de fonctionner, mais l’erreur peut ralentir le chargement et afficher des messages désagréables. Il est conseillé de la corriger rapidement pour éviter des problèmes futurs.

Puis-je supprimer l’erreur sans coder ?

Oui, en mettant à jour le thème ou le plugin concerné, ou en utilisant un plugin qui masque les erreurs. Cependant, la meilleure pratique est de corriger le code à la source.

Comment savoir quelle fonction est dépréciée ?

Activez le mode débogage de WordPress (WP_DEBUG) et consultez le fichier debug.log. Le message d’erreur contient le nom de la fonction et le fichier où elle est appelée.

Que faire si le plugin n’est plus mis à jour ?

Recherchez une alternative active sur le répertoire WordPress, ou engagez un développeur pour mettre à jour le code du plugin.

Les fonctions dépréciées sont-elles dangereuses pour la sécurité ?

Oui, car elles peuvent ne plus recevoir de correctifs de sécurité. De plus, elles peuvent être exploitées si elles sont vulnérables. Il est donc important de les remplacer.

Dois-je mettre à jour PHP pour résoudre ce problème ?

Parfois, l’erreur vient de l’utilisation de fonctions PHP obsolètes. Mettre à jour PHP vers une version récente (7.4 ou 8.x) peut aider, mais assurez-vous que votre thème et plugins sont compatibles.

Recommandations pour garder un site WordPress sain

Pour éviter de rencontrer l’erreur ‘Deprecated function’ à l’avenir, adoptez ces bonnes pratiques :

  • Planifiez des mises à jour régulières (au moins une fois par mois).
  • Utilisez un service de surveillance qui vous alerte en cas d’erreur critique.
  • Formez-vous aux bonnes pratiques de développement WordPress (codex, normes de codage).
  • Privilégiez les thèmes et plugins qui respectent les standards de WordPress et qui sont régulièrement mis à jour.
  • Si vous développez des extensions, testez-les avec la dernière version de PHP et de WordPress avant de les publier.

En suivant ces conseils, vous réduirez considérablement les risques d’erreurs liées aux fonctions dépréciées. N’oubliez pas que la maintenance préventive est toujours plus facile que la correction d’urgence. Si vous avez des doutes, n’hésitez pas à consulter un développeur WordPress expérimenté.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *