Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coupe WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Meilleure pratique : Vérifier l’existence de la fonction lors de l’Ajout d’un thème WordPress

Note éditoriale : Nous percevons une commission sur les liens des partenaires sur WPBeginner. Les commissions n'affectent pas les opinions ou les évaluations de nos rédacteurs. En savoir plus sur Processus éditorial.

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.

Checking if a function exists in 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.

WordPress critical error message

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.

Function runs normally

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.

Critical error in WordPress

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.

Missing function skipped

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.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Divulgation : Notre contenu est soutenu par les lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons gagner une commission. Consultez comment WPBeginner est financé, pourquoi cela compte et comment vous pouvez nous soutenir. Voici notre processus éditorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

L'ultime WordPress Toolkit

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tous les professionnels devraient avoir !

Reader Interactions

4 commentairesLaisser une réponse

  1. 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!

  2. 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

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

Laisser une réponse

Merci d'avoir choisi de laisser un commentaire. Veuillez garder à l'esprit que tous les commentaires sont modérés selon 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.