X

Le guide ultime des balises conditionnelles de WordPress

Les balises conditionnelles WordPress sont une fonctionnalité intéressante de WordPress qui vous permet de contrôler le contenu affiché sur une page. Il existe des balises conditionnelles pour différentes parties de votre site web, telles que la page d’accueil, les articles de blog et les pages. Cela vous permet de modifier ce qui est affiché sur votre site web. Par exemple, vous pouvez changer le logo de votre site web dans différentes zones de votre site web.

Dans ce tutoriel, je vais vous expliquer quelles sont les balises conditionnelles disponibles et vous montrer comment elles peuvent être utilisées dans les thèmes et les plugins.

Comment fonctionnent les balises conditionnelles de WordPress

Les balises conditionnelles sont un type de données booléen qui ne peut renvoyer que true ou false. La balise is_home(), par exemple, fait référence à l’index du blog. Nous pouvons utiliser cette balise pour afficher un message aux visiteurs de notre blog. Ce message ne sera pas affiché ailleurs.

Le code est simple. Tout ce que nous faisons ci-dessous est de vérifier si la page affichée est la page d’index du blog. Si c’est le cas, nous affichons notre message.

<?php         
 
if ( is_home()) {

echo "Welcome to Our Blog!!";

}

?>

Ce qui précède est un exemple basique de ce qui peut être réalisé à l’aide de balises conditionnelles, mais c’est essentiellement tout ce qu’il y a à faire. Il s’agit simplement de vérifier le type de page affichée. Selon que le résultat est vrai ou faux, un autre élément de code est exécuté.

Avant d’examiner d’autres exemples d’utilisation des balises conditionnelles, voyons d’abord les balises conditionnelles les plus courantes que vous êtes susceptible de voir utilisées dans vos thèmes WordPress.

  • is_home() – Vérifie si l’index des articles du blog est affiché. Il peut s’agir ou non de votre page d’accueil.
  • is_front_page() – Vérifie si votre page d’accueil est affichée. Cela fonctionne si les paramètres de votre page d’accueil sont configurés pour afficher les articles du blog (c’est-à-dire l’index du blog) ou une page statique.
  • is_single() – Vérifie si un type d’article unique est affiché (à l’exception des pièces jointes).
  • is_attachment() – Vérifie si une pièce jointe est affichée.
  • is_page() – Vérifie si une page est affichée.
  • is_singular() – Vérifie si un seul message, une seule pièce jointe ou une seule page est affichée. True est renvoyé si l’une ou l’autre de ces conditions est remplie.
  • is_category( ) – Vérifie si une page d’archive de catégorie est affichée.
  • is_search( ) – Vérifie si une page de résultats de recherche est affichée.
  • is_tag() – Vérifie si une archive de tags est affichée.
  • is_author() – Vérifie si une page d’archive d’auteur est affichée.
  • is_archive() – Vérifie si un type quelconque de page d’archive est affiché, y compris les archives de catégories, de balises, de dates et d’auteurs.
  • is_sticky() – Vérifie si un message a été défini comme collant.
  • is_multi_author() – Vérifie si plusieurs auteurs ont publié des articles sur le site web. La valeur True est renvoyée si deux personnes ou plus ont publié des articles. Si un seul auteur a publié des articles, ou si aucun article n’a été publié, le système renvoie la valeur false.

Il existe six balises conditionnelles basées sur le temps qui vous seront également utiles. Ces balises renvoient à des pages d’archives datées. Par exemple, l’URL http://www.yourwebsite.com/2013/12/ est une page d’archive basée sur le mois.

Si l’une des balises conditionnelles suivantes renvoie un résultat positif, is_archive() renvoie également un résultat positif.

  • is_date() – Vérifie s’il s’agit d’une page d’archive basée sur la date.
  • is_year() – Vérifie s’il s’agit d’une page d’archive basée sur l’année.
  • is_month() – Vérifie s’il s’agit d’une page d’archive basée sur le mois.
  • is_day( ) – Vérifie s’il s’agit d’une page d’archive basée sur le jour.
  • is_time() – Vérifie s’il s’agit d’une page d’archive basée sur l’heure.
  • is_new_day() – Vérifie si aujourd’hui est un nouveau jour. Si l’article actuel a été publié un jour différent de celui de l’article précédent, le résultat sera vrai. False sera renvoyé si les deux articles ont été publiés le même jour.

Vous rencontrerez fréquemment des balises conditionnelles telles que is_home() et is_single(), mais vous n’avez pas besoin de vous souvenir de toutes ces balises conditionnelles. La plupart des utilisateurs de WordPress se réfèrent au codex de WordPress pour trouver la balise conditionnelle appropriée lorsqu’ils ont besoin de mettre en place une fonction conditionnelle.

Exemples de balises conditionnelles

De nombreuses balises conditionnelles permettent de passer des paramètres à la fonction. Cela vous permet de mieux contrôler les conditions qui doivent être remplies avant d’agir. is_page() en est un bon exemple. Cette balise vous permet de vérifier si la page affichée est une page. is_page() renvoie la valeur true si une page est affichée, mais vous devez spécifier le paramètre $page si vous voulez être plus précis. Le paramètre $page peut être l’identifiant de la page, le titre de la page ou le slug de la page.

Prenons l’exemple d’un site web ordinaire qui possède une page “à propos” et que vous souhaitez personnaliser différemment de toutes les autres pages. Par exemple, vous pouvez afficher une photo de votre entreprise en haut de la barre latérale, ou vous pouvez afficher des informations supplémentaires au bas de la page à propos.

Pour ce faire, vous devez définir le paramètre $page. Si l’ID de la page était 10, vous pourriez commencer votre instruction conditionnelle par quelque chose comme ceci :

if ( is_page(10) ) {

Une page spécifique peut également être spécifiée en transmettant le titre de la page à la fonction.

if ( is_page( 'About Us' ) ) {

La balise de la page peut également être utilisée. Comme vous vous en souvenez peut-être, la balise de la page est l’identifiant unique à la fin de l’URL. Si l’URL de votre page d’information est www.yourwebsite.com/about-our-company/, l’extension de la page sera about-our-company.

if ( is_page( 'about-our-company' ) ) {

Certaines balises conditionnelles, telles que is_page(), peuvent également transmettre des paramètres dans un tableau. L’instruction conditionnelle suivante renverra la valeur true si l’une ou l’autre des conditions est vraie.

if ( is_page( array( 10, 'About Us', 'about-our-company' ) ) ) {

Il est fréquent que les développeurs définissent plusieurs conditions lorsqu’ils utilisent des balises conditionnelles. Revenons à la tâche simple qui consiste à afficher un message de bienvenue aux visiteurs d’un blog. Il s’agit d’un message qu’un site web d’entreprise pourrait vouloir ajouter à sa zone de blog, mais pas aux autres zones de son site web (par exemple, la page d’accueil, la page de contact, la page “à propos”, etc.)

Il peut le faire en utilisant les balises conditionnelles is_home() et is_single(), qui représentent respectivement l’index du blog et les articles individuels. Pour afficher un message dans les deux zones, vous devez utiliser l’opérateur logique OR ||. Ceci est illustré dans le code ci-dessous. L’instruction if initiale vérifie si la page est l’index du blog ou un article unique. Si l’un ou l’autre est vrai, le message est affiché.

<?php         
 
if ( is_home() || is_single() ) {

echo "Welcome to Our Blog!!";

}

?>

Un autre opérateur logique très utile est l’opérateur AND &&. Il est utilisé lorsque deux conditions ou plus doivent être remplies avant qu’une action ne soit entreprise. L’instruction if suivante vérifie si une page est à la fois une page d’archives et une page classée dans la catégorie “actualités”. Dans les pages de la catégorie “actualités”, le message de bienvenue sera affiché. Rien ne sera affiché dans les autres catégories.

<?php 

if ( is_archive() && is_category( 'News' ) ) {
  
echo "Welcome to the News Archives";

}

?>

Les opérateurs AND et OR peuvent être combinés. L’exemple ci-dessous est tiré du modèle functions.php du thème WordPress par défaut Twenty Thirteen. La fonction est utilisée pour afficher le titre de la page dans le navigateur, mais seule une partie de la fonction est présentée ci-dessous.

L’instruction if renvoie la valeur true s’il existe une description du site et si l’utilisateur consulte l’index du blog ou la page d’accueil. La description du site peut être saisie dans le champ “tagline” de la zone des paramètres généraux. Si vous remplissez ce champ, la barre de titre de l’index de votre blog et de la page d’accueil affichera “Titre du site | Description du site” (note : le séparateur est affiché à l’aide de la chaîne $sep dans le code ci-dessous). Si vous ne le faites pas, la barre de titre affichera “Titre du site”.

Comme vous pouvez le constater, is_home et _is_front_page sont considérés comme une seule entité en raison de l’opérateur OR. C’est pourquoi elles sont placées entre crochets.

if ( $site_description && ( is_home() || is_front_page() ) )
		$title = "$title $sep $site_description";

Un autre opérateur logique de PHP que vous pouvez utiliser est l’opérateur not ! Il est plus pratique à utiliser dans de nombreuses circonstances. Par exemple, supposons que vous souhaitiez afficher une photographie sur toutes vos pages, à l’exception des archives. Il n’est pas nécessaire de mettre en place une longue instruction conditionnelle demandant “Est-ce la page d’accueil, est-ce un message unique, est-ce une page…”. Il est plus pratique de demander simplement : “Ceci n’est-il pas une page d’archives ?

Pour ce faire, il suffit d’ajouter un point d’exclamation avant la balise conditionnelle. Le code ci-dessous montre à quel point cela est simple en pratique. Il affichera une image sur toutes les pages de votre site web, à l’exception des pages d’archives.

<?php 

if ( !is_archive() ) { ?>
  
<img src="photo.jpg" />

<?php 

}

?>

Jusqu’à présent, nous avons examiné des exemples basiques d’utilisation de balises conditionnelles où quelque chose est soit actionné, soit non actionné (c’est-à-dire si A est vrai, faire B). Dans la pratique, il existe généralement une autre action à effectuer si une condition n’est pas remplie. En outre, il peut y avoir plusieurs conditions qui peuvent être remplies, avec une réponse différente pour chacune d’entre elles.

Plutôt que d’écrire de nombreuses instructions individuelles pour cela, il est plus pratique d’utiliser des instructions else et elseif. Cela vous permet de mieux contrôler ce qui est affiché sur votre site web.

Nous pouvons le montrer à l’aide d’un exemple. Supposons que vous souhaitiez afficher un logo différent à différents endroits de votre site web. Comment procéder ? La réponse est simple : Nous utilisons les instructions else et elseif. Le code ci-dessous montre comment cela peut être réalisé.

<?php 

if ( is_home() || is_front_page() ) { ?>
  
<img src="logo-home.png" />

<?php 

} elseif ( is_category() ) { ?>

<img src="logo-category.png" />

<?php 

} elseif ( is_single() ) { ?>

<img src="logo-blog-post.png" />

<?php 

} elseif ( is_page() ) { ?>

<img src="logo-page.png" />

<?php 

}

else { ?>

<img src="logo-general.png" />

<?php 

}

?>

En fonction de la zone du site web consultée par un visiteur, l’un des cinq logos sera affiché à l’aide du code ci-dessus. Il s’agit d’un exemple de base qui illustre la facilité avec laquelle les instructions else et elseif peuvent être utilisées pour contrôler de nombreuses zones différentes de votre site web.

Les instructions elseif sont également utilisées dans d’autres parties de WordPress. La plupart des modèles functions.php les utilisent et de nombreux thèmes WordPress s’en servent pour modifier l’affichage du titre de leur site web dans les navigateurs.

Plus de tags conditionnels

Il existe un certain nombre de balises conditionnelles supplémentaires. La plupart d’entre elles sont utilisées par les développeurs dans les thèmes et les plugins.

Vous trouverez ci-dessous une liste des autres balises conditionnelles disponibles.

  • is_tax() – Vérifie si une page d’archive de taxonomie personnalisée est affichée.
  • has_term() – Vérifie si le message actuel contient l’un des termes spécifiés.
  • taxonomy_exists() – Vérifie si le nom de la taxonomie existe.
  • post_type_exists() – Vérifie si un type de message existe.
  • is_post_type_hierarchical( $post_type ) – Vérifie si le type de message est hiérarchique.
  • is_post_type_archive() – Vérifie si la page d’archive d’un type de message spécifique est affichée.
  • is_comments_popup() – Vérifie si la fenêtre popup des commentaires est ouverte.
  • comments_open() – Vérifie si les commentaires sont autorisés pour le message ou la page en cours.
  • pings_open() – Vérifie si les pings sont autorisés pour l’article ou la page en cours.
  • is_feed() – Vérifie si la requête en cours concerne un flux.
  • is_404() – Vérifie si une erreur 404 est affichée.
  • is_paged() – Vérifie si la page que vous consultez actuellement est une page paginée autre que la première page. Les messages et les pages sont paginés lorsque vous utilisez l’étiquette rapide nextpage dans votre contenu pour diviser les messages volumineux.
  • is_trackback() – Vérifie si un trackback est utilisé.
  • is_admin( ) – Vérifie si l’utilisateur est connecté à la zone administrateur. Il n’est pas utilisé pour vérifier si un utilisateur a des privilèges d’administrateur, mais seulement s’il est connecté au tableau de bord de WordPress.
  • is_page_template() – Vérifie si la page affichée utilise un modèle de page. Un modèle de page spécifique peut être défini, si nécessaire.
  • is_preview() – Vérifie si un article de blog est affiché en mode brouillon.
  • has_excerpt() – Vérifie si l’article en cours contient un extrait. Des articles spécifiques peuvent être définis.
  • has_nav_menu() – Vérifie si un menu a été attribué à un emplacement de menu. Cette fonction est utilisée par les développeurs de thèmes pour afficher quelque chose si l’utilisateur n’a pas ajouté de menu.
  • in_the_loop() – Vérifie si l’appelant est toujours dans la boucle WordPress.
  • is_active_sidebar( $index ) – Vérifie si une barre latérale donnée est utilisée.
  • is_multisite() – Vérifie si le multisite est supporté.
  • is_main_site() – Vérifie si un multisite est le site principal du réseau.
  • is_super_admin() – Vérifie si un utilisateur est un super administrateur dans le réseau.
  • is_plugin_active( $plugin ) – Vérifie si un plugin est activé.
  • is_child_theme() – Vérifie si un thème enfant est utilisé.
  • current_theme_supports( $feature ) – Vérifie si un thème prend en charge une fonctionnalité spécifique telle que les formats d’articles ou les images en vedette.

Voir aussi : Comment supprimer les taxonomies par défaut.

Les balises conditionnelles sont un concept important de WordPress. En raison de leur utilité, peu de thèmes WordPress sont conçus sans elles. Une fois que vous aurez compris les instructions else, elseif et les opérateurs logiques tels que AND, OR et Not, vous serez en mesure de vous attaquer à n’importe quelle fonction conditionnelle.

J’espère que ce guide vous a aidé à apprendre comment utiliser les balises conditionnelles de WordPress dans vos thèmes.

Si vous avez aimé cet article, rejoignez IsItWP sur Twitter.

Commentaires   laisser une réponse

  1. hi, im hetting a problem in executing the conditional statement…

    if ( is_home() || is_front_page() || is_page_template(‘templates/template-home.php’) ) {
    //
    } elseif ( is_page() && $inner_disable == ‘disable’ ) {
    //
    } elseif (is_singular( array( ‘products’ ) ) ) {
    trav_get_template( ‘inner-3.php’, ‘/templates/inners’ );
    }////got this working
    elseif ( is_page() && is_page_template( ‘templates/custom-page.php’ ) ) {
    trav_get_template( ‘inner-p.php’, ‘/templates/inners’ );////but not getting this result…instead getting the below one for this condition aswell.
    } else {
    trav_get_template( ‘inner-1.php’, ‘/templates/inners’ );
    }

    1. Are you getting an error message?

  2. Northwesterner mai 27, 2019 à 7:13 pm

    Except that teaching: { ?> with the brace located inside the php closing tag is improper syntax. Refer to WP or PHP code tuts.

  3. Martins Toritseju avril 27, 2019 à 11:13 pm

    This is a really nice tutorial. It helped me a lot in creating my child theme.

    1. Hey Martin, glad it helped. Do follow us on Facebook and Twitter for more tutorials. 🙂

  4. Henrique Silvério juin 4, 2014 à 1:47 pm

    Nice tips. Understanding how to use conditional tags is a key requisite to WordPress developers. 🙂

  5. Nebulas Website Design mai 22, 2014 à 6:16 am

    Thanks for this have got to do some work on a client’s website so a link only appears in a certain shop category so this will come in handy thank you.

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre privacy policy, et que tous les liens sont en nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Engageons une conversation personnelle et constructive.

WordPress Launch Checklist

L'ultime liste de contrôle pour le lancement de WordPress

Nous avons rassemblé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi le gratuit !