Ajouté récemment, un utilisateur nous a demandé comment vérifier l’existence d’une fonction PHP avant d’ajouter un nouveau code à votre site WordPress qui en dépend.
La meilleure partie de WordPress est sa flexibilité, y compris la possibilité d’ajouter vos propres fonctions personnalisées à votre site. Cependant, il arrive que votre code personnalisé ne fonctionne pas parce que la fonction à laquelle il se réfère n’existe plus.
Dans cet article, nous allons vous afficher comment vérifier facilement si une fonction existe avant de l’ajouter à votre thème WordPress.
Pourquoi ajouter la fonction « Si la fonction existe » à votre code personnalisé ?
WordPress est principalement écrit en langage de programmation PHP. PHP est un langage de programmation côté serveur qui fonctionne sur les serveurs de votre fournisseur d’hébergement WordPress.
Comme le code PHP doit être exécuté avant que la page ne soit chargée dans les navigateurs de vos internautes, il présente certaines limites. L’une de ces limitations est que si quelque chose ne fonctionne pas correctement, cela peut empêcher le chargement de la page entière.
Dans WordPress, si une fonction manquante empêche le reste du code de s’exécuter, celui-ci s’arrête et affiche un message d’erreur critique ou d’erreur fatale.
Qu’est-ce qui peut faire qu’une fonction cesse soudainement de fonctionner ou disparaisse ?
Il s’agit d’une erreur WordPress plus fréquente qu’on ne le pense.
Par exemple, disons que l’une de vos extensions WordPress est accompagnée d’une fonction que vous avez ajoutée à la zone de l’en-tête ou du pied de page de votre thème. Désactiver l’extension 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 les fichiers de votre thème WordPress.
Vérifier l’existence d’une fonction dans WordPress
Heureusement, le langage de programmation PHP intègre une méthode permettant de vérifier facilement l’existence d’une fonction avant de l’exécuter.
Disons que vous avez une fonction WordPress qui affiche l’heure actuelle avec des informations sur le fuseau horaire. Voici un extrait de code que vous pouvez utiliser pour l’essayer.
Vous pouvez l’ajouter directement au fichier functions.php de votre thème ou utiliser une extension d’extraits de code telle 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 quel endroit de votre thème WordPress où vous souhaitez afficher l’heure actuelle.
<?php wpb_show_timezone(); ?>
Voici ce que cela donne sur notre site de test.
Maintenant, que se passerait-il si le code responsable de l’exécution de cette fonction disparaissait ?
L’appel à la fonction cassera votre site comme suit.
Ajoutons une vérification pour nous assurer que ce code s’exécute uniquement lorsque la fonction existe.
Là encore, vous devrez ajouter le code directement dans le fichier functions.php de votre thème ou utiliser une extension d’extraits de code telle 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 va simplement l’Aller/au, et WordPress pourra charger le reste de votre site normalement.
Nous espérons que cet article vous a aidé à apprendre comment vérifier si une fonction existe dans WordPress. Vous pouvez é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, veuillez alors vous abonner à notre chaîne YouTube pour obtenir des tutoriels vidéo sur WordPress. Vous pouvez également nous trouver sur Twitter et Facebook.
Syed Balkhi says
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Rakib says
really helpful
Joana Pereira says
Good call Kovshenin. I know exactly what you mean because I was using a custom function with contact form 7 (to retrieve the ip address on each form) and every time the plugin was updated, the theme broke.
Thanks for the tip
Joana Pereira
kovshenin says
Right, only please stop checking for dynamic_sidebar with function_exists in WordPress themes, unless you need to support WordPress 2.2 and below, which I *highly* doubt. Also with the user photo plugin, the whole approach seems to be wrong and redundant to me, it looks like many developers are missing the whole point of pluggable functions…. Oh well