Le problème
Résumé rapide
Les symptômes
Pourquoi ça arrive
Prérequis avant de commencer
Solution 1 : Corriger l'appel de la fonction
Solution 2 : Vérifier les extensions
Solution 3 : Vérifier les conflits de plugins
Vérifications après correction
Si ça ne marche toujours pas
Pièges et erreurs courantes
Variante / alternative
Éviter ce problème à l'avenir
Ressources
Questions fréquentes
Le problème
Si vous avez récemment mis à jour votre plugin Frontend Admin vers la version 3.28.31 et que vous avez vu apparaître le message d'erreur suivant :
Fatal error: Uncaught Error: Call to undefined function ...
Ce message peut apparaître aussi bien sur l'interface d'administration que sur le front-end de votre site, souvent immédiatement après une mise à jour du plugin. Cet article s'adresse à vous si vous rencontrez ce problème et souhaitez le résoudre rapidement. À la fin, vous serez en mesure de diagnostiquer et corriger cette erreur pour restaurer le bon fonctionnement de votre site.
Résumé rapide
- Vérifiez la mise à jour correcte du plugin Frontend Admin.
- Assurez-vous que toutes les extensions requises sont activées.
- Testez sur un environnement de staging avant de faire des modifications en production.
- Utilisez des outils de diagnostic comme Query Monitor.
- Consultez les logs pour des erreurs supplémentaires.
Les symptômes
- Erreur 500 sur le front-end ou l'admin de votre site.
- Écran blanc de la mort (WSOD).
- Fonctionnalités du plugin non fonctionnelles ou cassées.
- Erreurs dans la console de votre navigateur, si le problème est lié à AJAX.
Pourquoi ça arrive
La plupart du temps, ce problème survient en raison d'une incompatibilité entre le plugin Frontend Admin et un autre plugin ou thème, ou à cause d'une fonction manquante ou mal appelée dans le code.
Pour les débutants, cela signifie qu'une partie du code du plugin Frontend Admin essaie d'utiliser une fonction qui n'est pas chargée ou qui n'existe pas. Pour les utilisateurs avancés, cela peut être dû à des appels de fonctions conditionnelles mal structurés ou à un problème de chargement de fichiers PHP.
Voici quelques raisons fréquentes :
- Mise à jour incomplète ou corrompue du plugin.
- Conflit avec d'autres plugins récemment mis à jour.
- Fonction dépendante d'une extension ou d'un module PHP désactivé.
- Appel de fonction avant que son fichier ne soit inclus dans le chargement.
Prérequis avant de commencer
- Sauvegardez votre site avant toute modification.
- Créez un environnement de staging pour tester les corrections.
- Assurez-vous que WordPress est à jour en version 6.9.4, et PHP en version 8.1 ou supérieure.
- Installez des plugins de diagnostic tels que Query Monitor et Health Check.
- Activez WP_DEBUG pour afficher les erreurs PHP.
Solution 1 : Corriger l'appel de la fonction
Ce problème peut être causé par un appel incorrect de la fonction dans le fichier du plugin. Voici comment le corriger :
// Code AVANT
function my_custom_function() {
// Erreur potentielle ici : appel à une fonction non chargée
some_undefined_function();
}
// Code APRÈS
function my_custom_function() {
if (function_exists('some_undefined_function')) {
some_undefined_function();
} else {
error_log('some_undefined_function n'existe pas');
}
}
Explication :
- if (function_exists(...)) : Vérifie si la fonction est définie avant de l'appeler.
- error_log(...): Log l'erreur si la fonction n'est pas définie, ce qui facilite le diagnostic.
Où appliquer le code : Dans le fichier functions.php de votre thème enfant ou dans un plugin spécifique si la fonction est personnalisée pour votre besoin.
Sauvegardez toujours avant de modifier des fichiers PHP !
Exemple de code supplémentaire
Un autre exemple serait de s'assurer que votre code utilise bien le hook approprié pour exécuter une fonction après le chargement complet de WordPress :
add_action('wp_loaded', 'my_custom_function');
function my_custom_function() {
if (function_exists('some_undefined_function')) {
some_undefined_function();
} else {
error_log('some_undefined_function n'existe pas');
}
}
En utilisant add_action('wp_loaded', ...), vous vous assurez que la fonction n'est appelée qu'après que WordPress et tous les plugins aient été entièrement chargés, minimisant ainsi les risques d'erreurs dues à des fonctions non chargées.
Solution 2 : Vérifier les extensions
Parfois, l'erreur peut être causée par des extensions ou modules PHP manquants. Pour résoudre cela :
- Connectez-vous à votre serveur via SSH ou utilisez un gestionnaire de fichier.
- Vérifiez que toutes les extensions PHP nécessaires sont installées et activées, par exemple, "mbstring", "curl", etc.
- Consultez la documentation de Frontend Admin pour connaître les extensions requises.
Après avoir vérifié et installé les extensions manquantes, redémarrez votre serveur web si nécessaire.
Pour vérifier quelles extensions PHP sont activées, vous pouvez créer un fichier phpinfo.php à la racine de votre site avec le contenu suivant :
<?php
phpinfo();
?>
Accédez ensuite à ce fichier depuis votre navigateur pour voir la liste des extensions activées.
Solution 3 : Vérifier les conflits de plugins
Un autre problème commun est le conflit avec d'autres plugins. Voici comment le diagnostiquer :
- Désactivez tous les plugins sauf Frontend Admin.
- Vérifiez si l'erreur persiste.
- Réactivez les plugins un par un pour identifier lequel cause le conflit.
Si un conflit est identifié, contactez les développeurs du plugin en cause pour une solution ou utilisez une alternative.
Une autre méthode avancée consiste à utiliser l'extension Plugin Organizer pour gérer l'ordre de chargement des plugins, ce qui peut parfois résoudre des conflits.
Vérifications après correction
- Rechargez votre site pour vérifier que l'erreur n'apparaît plus.
- Avec Query Monitor, assurez-vous qu'aucune nouvelle erreur n'est loguée.
- Testez toutes les fonctionnalités du plugin pour confirmer leur bon fonctionnement.
Il est crucial de vérifier également les performances de votre site après résolution pour s'assurer qu'aucun autre problème n'a été introduit.
Si ça ne marche toujours pas
- Vérifiez le cache du navigateur et videz-le si nécessaire.
- Assurez-vous que les fichiers du plugin sont bien chargés en vérifiant les chemins d'accès.
- Vérifiez les permissions des fichiers pour s'assurer qu'elles sont correctes.
- Consultez la console du navigateur pour des erreurs JavaScript qui pourraient affecter le plugin.
- Regénérez les permaliens via les paramètres WordPress.
Si vous utilisez un service de CDN, assurez-vous également de vider le cache du CDN.
Pièges et erreurs courantes
| Symptôme | Cause probable | Solution recommandée |
|---|---|---|
| Écran blanc | Erreur PHP non affichée | Activez WP_DEBUG pour voir les erreurs |
| Erreur après mise à jour | Plugin partiellement mis à jour | Re-téléchargez et réinstallez le plugin |
| Fonction non trouvée | Appel de fonction avant chargement | Vérifiez l'ordre de chargement des fichiers |
| Erreur de syntaxe PHP | Modifications incorrectes du code | Vérifiez les modifications récentes et corrigez la syntaxe |
Variante / alternative
Pour ceux qui préfèrent éviter de toucher au code, utiliser un plugin de gestion des erreurs PHP comme WP PHP Errors peut vous aider à capturer et gérer les erreurs sans éditer manuellement les fichiers PHP.
Éviter ce problème à l'avenir
- Mettez toujours à jour les plugins et thèmes sur un environnement de test avant la production.
- Gardez une liste des extensions PHP nécessaires pour chaque plugin utilisé.
- Surveillez les logs d'erreur régulièrement pour détecter les problèmes avant qu'ils ne deviennent critiques.
- Participez aux forums de support des plugins pour rester informé des bugs connus et des solutions.
Ressources
- Fonctions du thème
- Développement de plugins
- Trac de WordPress
- PHP Manual
- Forums de support WordPress
Questions fréquentes
Pourquoi mon site plante-t-il après une mise à jour ?
Cela peut être dû à des conflits de plugins, des mises à jour incomplètes ou des fonctions PHP désactivées.
Comment puis-je activer WP_DEBUG ?
Ajoutez define('WP_DEBUG', true); dans votre fichier wp-config.php.
Que faire si je n'arrive pas à résoudre le problème ?
Consultez un développeur WordPress expérimenté pour un diagnostic approfondi.
Puis-je désactiver le plugin en cas de problème ?
Oui, désactivez-le depuis l'interface d'administration ou via FTP en renommant le dossier du plugin.
Dois-je toujours sauvegarder mon site avant de faire une mise à jour ?
Absolument, ceci vous permet de restaurer votre site en cas de problème.