Tutoriels WordPress de confiance, quand vous en avez le plus besoin.
Guide du débutant pour WordPress
WPB Cup
25 millions+
Sites web utilisant nos plugins
16+
Années d'expérience WordPress
3000+
Tutoriels WordPress par des experts

Meilleure pratique : Vérifier si une fonction existe lors de l'ajout dans un thème WordPress

L'un de nos lecteurs plus techniques nous a récemment demandé comment vérifier l'existence d'une fonction PHP avant d'intégrer du nouveau code dans un site WordPress. Ceci est important pour garantir que votre site fonctionne sans problème et évite les erreurs.

L'une des forces de WordPress est sa flexibilité et l'équipe WPBeginner ajoute régulièrement des fonctions personnalisées pour améliorer les fonctionnalités de notre site. Nous comprenons que le code PHP personnalisé peut échouer s'il appelle une fonction qui n'existe plus ou qui n'a pas encore été définie.

Dans cet article, nous vous montrerons comment vérifier facilement si une fonction existe avant de l'ajouter à votre thème WordPress, vous permettant ainsi d'éviter les erreurs potentielles dans votre code.

Vérifier si une fonction existe dans WordPress

Pourquoi ajouter « Si la fonction existe » à votre code personnalisé ?

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 hébergement WordPress.

Comme le code PHP doit avoir fini de s'exécuter avant que la page ne soit chargée dans les navigateurs de vos visiteurs, il y a certaines limitations. L'une de ces limitations est que si quelque chose se passe mal, cela pourrait empêcher le chargement de toute la page.

Dans WordPress, si une fonction manquante empêche le reste du code de s'exécuter, alors il s'arrête et affiche un message d'erreur critique ou d'erreur fatale.

Message d'erreur critique WordPress

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 qu'un de vos plugins WordPress contient une fonction que vous avez ajoutée dans l'en-tête ou le 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.

Cela dit, examinons comment vérifier facilement si une fonction existe avant de l'exécuter dans les fichiers de votre thème WordPress.

Vérifier si une fonction existe dans WordPress

Heureusement, le langage de programmation PHP dispose d'une méthode intégrée pour vérifier facilement l'existence d'une fonction avant de l'exécuter.

Supposons que vous ayez une fonction WordPress qui affiche l'heure actuelle avec des informations de fuseau horaire. Voici un exemple de code que vous pouvez utiliser pour essayer.

Vous pouvez l'ajouter directement au fichier functions.php de votre thème, mais dans ce tutoriel, nous utiliserons le plugin d'extraits de code WPCode car c'est le moyen le plus sûr et le plus simple d'ajouter du code personnalisé dans WordPress.

Tout d'abord, vous devez installer et activer le Plugin Gratuit WPCode. Si vous avez besoin d'aide pour cela, consultez notre guide étape par étape pour débutants sur comment installer un plugin WordPress.

Après l'activation, vous devez aller dans Extraits de code » + Ajouter un extrait sur votre tableau de bord WordPress. Une fois là, survolez l'option « Ajouter votre code personnalisé (Nouvel extrait) » avec votre souris, puis cliquez sur le bouton « Utiliser l'extrait » qui apparaît.

Ajout de code personnalisé dans WPCode

Cela ouvrira une nouvelle page où vous pourrez ajouter votre extrait personnalisé. Tapez un titre tel que « Afficher l'heure actuelle avec le fuseau horaire », puis collez l'extrait de code ci-dessous dans le volet d'aperçu du code.

//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>";
}
Collez l'extrait de code dans WPCode

Après cela, vous devez sélectionner « Extrait PHP » dans le menu déroulant Type de code pour vous assurer que le code s'exécute correctement.

Enfin, vous devez activer le bouton bascule Activer et cliquer sur le bouton « Enregistrer le extrait de code » pour stocker votre nouveau extrait de code.

Activez et enregistrez l'extrait de code

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.

La fonction s'exécute normalement

Maintenant, que se passerait-il si le code responsable de l'exécution de cette fonction disparaissait ?

L'appel de la fonction cassera votre site Web comme ceci.

Erreur critique dans WordPress

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 au fichier functions.php de votre thème ou utiliser un plugin d'extraits 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 Vrai ou Faux.

Nous avons ensuite ajouté une condition if-else pour prendre les mesures appropriées en fonction de la disponibilité de la fonction.

Maintenant, lorsque la fonction n'est plus disponible, le code l'ignorera simplement, et WordPress pourra charger le reste de votre site Web normalement.

Fonction manquante ignorée

Nous espérons que cet article vous a aidé à apprendre comment vérifier si une fonction existe dans WordPress. Vous voudrez peut-être aussi consulter notre guide sur comment afficher facilement du code sur votre site WordPress ou notre sélection d'experts des meilleurs éditeurs de code pour Mac et Windows pour l'édition de fichiers WordPress.

Si cet article vous a plu, abonnez-vous à notre chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous retrouver sur Twitter et Facebook.

Avis : Notre contenu est financé par nos lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons percevoir une commission. Voir comment WPBeginner est financé, pourquoi c'est important et comment vous pouvez nous soutenir. Voici notre processus éditorial.

La boîte à outils WordPress ultime

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tout professionnel devrait posséder !

Interactions des lecteurs

7 CommentsLeave a Reply

  1. M'a épargné un mal de tête ! Je ne vous dis pas combien de fois j'ai ajouté du code pour que mon thème plante parce qu'une fonction était manquante. Super facile à implémenter et garde mon code propre.

    Merci pour l'explication claire

  2. J'aimerais demander, si PHP me donne une erreur concernant une fonction PHP inexistante, une telle fonction peut-elle être activée, ou cela doit-il être fait par l'administrateur du serveur ? Et est-il possible que la fonction dépende de la version de PHP ? C'est-à-dire qu'une certaine fonction est disponible dans une version de PHP mais pas dans une autre ?

    • Dans ce cas, la fonction n'existe pas, vous devrez donc examiner quelle est la fonction spécifique pour aider à trouver ce qui cause l'erreur. Après cela, vous pouvez vérifier auprès du support ce qui cause l'erreur ou supprimer ce qui cause l'erreur.

      Admin

  3. Bonne idée Kovshenin. Je sais exactement ce que vous voulez dire car j'utilisais une fonction personnalisée avec contact form 7 (pour récupérer l'adresse IP sur chaque formulaire) et à chaque fois que le plugin était mis à jour, le thème cassait.

    Merci pour l'astuce

    Joana Pereira

    • J'ai eu le même problème avec les mises à jour de plugins qui cassaient les thèmes ! Utiliser function_exists() change vraiment la donne pour éviter ces maux de tête.

  4. 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 :)

Laisser un commentaire

Merci d'avoir choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.