Récemment, un utilisateur nous a demandé comment vérifier si une fonction PHP existe avant d'ajouter un nouveau code à votre site WordPress qui en dépend.
Le meilleur de WordPress est sa flexibilité, notamment la possibilité d’ajouter vos propres fonctions à votre site Web. Cependant, il arrive parfois que votre code personnalisé ne fonctionne pas car la fonction à laquelle il fait référence n’existe plus.
Dans cet article, nous allons vous montrer comment vérifier facilement si une fonction existe avant de l'ajouter à votre thème WordPress.
WordPress est principalement écrit dans le langage de programmation PHP. PHP est un langage de programmation côté serveur qui s'exécute sur les serveurs de votre fournisseur d'hébergement WordPress.
Étant donné que PHP doit terminer son exécution avant que la page ne soit chargée dans les navigateurs de vos visiteurs, il existe certaines limitations. L’une de ces limitations est que si quelque chose ne va pas, cela pourrait empêcher le chargement de la page entière.
Dans WordPress, si une fonction manquante empêche l’exécution du reste du code, celui-ci s’arrête et affiche une erreur critique ou un message d’erreur fatale.
Qu'est-ce qui peut faire qu'une fonction cesse soudainement de fonctionner ou disparaisse ?
C’est une erreur WordPress plus courante que vous ne le pensez.
Par exemple, disons que l’un de vos plugins WordPress est livré avec une fonction que vous avez ajoutée à la zone de pied de page de votre thème. La désactivation du plugin fera disparaître la fonction et provoquera l’erreur critique sur votre site WordPress.
Ceci étant dit, voyons comment vérifier facilement si une fonction existe avant de l’exécuter dans vos fichiers de thème WordPress.
Heureusement, le langage de programmation PHP est livré avec une méthode intégrée permettant de vérifier facilement l'existence d'une fonction avant de l'exécuter.
Disons que vous disposez d’une fonction WordPress qui affiche l’heure actuelle avec des informations sur le fuseau horaire. Voici un exemple d’extrait de code que vous pouvez utiliser pour l’essayer.
Vous pouvez l’ajouter directement au fichier function.php de votre thème ou utiliser un plugin d’extrait de code tel que WPCode (recommandé). Vous pouvez consulter notre guide sur la façon d’ajouter facilement du code personnalisé dans WordPress :
//display current time with timezone
function wpb_show_timezone() {
$better_time = current_time('F j, Y g:i a e');
echo "<p>The current time is " . $better_time ."</p>";
}
Pour appeler cette fonction, vous devrez ajouter le code suivant n'importe où dans votre thème WordPress où vous souhaitez afficher l'heure actuelle.
<?php wpb_show_timezone(); ?>
Voici à quoi cela ressemblait sur notre site Web de test.
Maintenant, que se passerait-il si le code responsable de l’exécution de cette fonction disparaissait ?
L'appel à la fonction brisera votre site Web comme ceci.
Ajoutons une vérification pour nous assurer que ce code ne s'exécute que lorsque la fonction existe.
Encore une fois, vous devrez ajouter le code directement dans le fichier function.php de votre thème ou utiliser un plugin d'extrait de code tel que WPCode (recommandé) :
<?php
if( function_exists('wpb_show_timezone')) {
wpb_show_timezone();
} else {
// do nothing
}
?>
Dans ce code, nous utilisons la fonction function_exists(). Cette fonction vérifie si une fonction existe et renvoie True ou False.
Nous avons ensuite ajouté une condition if-else pour prendre les mesures appropriées en fonction de la disponibilité de la fonction.
Désormais, lorsque la fonction n’est plus disponible, le code l’ignorera simplement et WordPress pourra charger normalement le reste de votre site Web.
Nous espérons que cet article vous a aidé à apprendre comment vérifier si une fonction existe dans WordPress. Vous souhaiterez peut-être également consulter notre guide complet de dépannage WordPress ou nos choix d’experts pour les meilleurs constructeurs de pages WordPress par glisser-déposer.
Si vous avez aimé cet article, abonnez-vous à notre chaîne YouTube pour les didacticiels vidéo WordPress. Vous pouvez également nous trouver sur Twitter et Facebook.