Les balises conditionnelles / Conditional tags : <b:if>, <b:elseif>, <b:else>

Blogger - Les balises conditionnelles <b:if>, <b:elseif>, <b:else>

Les balises conditionnelles <b:if>, <b:elseif> et <b:else> sont utilisées dans le code XML des thèmes Blogger pour afficher ou masquer des éléments en fonction d’une condition. Elles permettent de personnaliser un thème, de rendre l’affichage plus flexible et d’adapter le contenu selon le contexte (page d’accueil, article, mobile, etc.).

Ces balises logiques constituent l’un des outils essentiels pour contrôler la structure et le dynamisme d’un thème Blogger. Bien maîtrisées, elles offrent la possibilité d’aller au-delà des options standards de l’interface et d’affiner le rendu de chaque partie du blog.

Les bases de la syntaxe

b:if

<b:if cond='CONDITION'>

  <!-- Le bloc de code est exécuté si la condition est vraie -->

</b:if>

La balise <b:if> exécute un bloc de code uniquement si la condition définie est vraie. C’est la forme la plus simple des balises conditionnelles Blogger.

b:if + b:else

<b:if cond='CONDITION'>

  <!-- Le bloc de code est exécuté si la condition est vraie -->

  <b:else/>

  <!-- Le bloc de code est exécuté si la condition est fausse -->

</b:if>

En ajoutant une balise <b:else>, on peut définir une alternative :

  • le premier bloc s’exécute si la condition est vraie,

  • le second bloc s’exécute si la condition est fausse.

b:if + b:elseif

<b:if cond='CONDITION1'>

  <!-- Le bloc de code est exécuté si la condition 1 est vraie -->

  <b:elseif cond='CONDITION2'/>

  <!-- Le bloc de code est exécuté si la condition 1 est fausse et si la condition 2 est vraie -->

</b:if>

La balise <b:elseif> permet de tester une deuxième condition (ou plus) lorsque la première est fausse.

Elle est utile lorsqu’on veut enchaîner plusieurs cas possibles sans multiplier les blocs <b:if>.

b:if + b:elseif + b:else

<b:if cond='CONDITION1'>

  <!-- Le bloc de code est exécuté si la condition 1 est vraie -->

  <b:elseif cond='CONDITION2'/>

  <!-- Le bloc de code est exécuté si la condition 1 est fausse et si la condition 2 est vraie -->

  <b:else/>

  <!-- Le bloc de code est exécuté si la condition 1 est fausse et si la condition 2 est fausse -->

</b:if>

En combinant les trois, on obtient une structure complète :

  • <b:if> teste la première condition,

  • un ou plusieurs <b:elseif> testent des conditions supplémentaires,

  • <b:else> gère le cas où toutes les conditions précédentes sont fausses.

Règles d’utilisation

Les balises conditionnelles Blogger obéissent à quelques règles importantes pour fonctionner correctement dans le code XML des thèmes. Bien les respecter garantit un affichage fiable et évite les erreurs lors de la personnalisation d’un thème.

  • Les balises <b:if>, <b:elseif> et <b:else> peuvent être utilisées dans tout le code XML, sauf à l’intérieur d’une section <![CDATA[ ... ]]>.

  • Plusieurs balises <b:if> peuvent être imbriquées afin de créer des conditions plus complexes.

  • Les balises <b:elseif> et <b:else> doivent toujours être placées à l’intérieur d’un <b:if>.

  • L’usage de <b:elseif> et <b:else> est facultatif : un <b:if> peut se suffire à lui-même.

  • Une balise <b:if> peut contenir plusieurs <b:elseif> successifs pour tester différentes conditions.

  • Une balise <b:else> ne peut être utilisée qu’une seule fois par <b:if>, et elle doit toujours être la dernière condition dans la séquence.

  • Les balises <b:elseif> et <b:else> sont auto-fermantes : elles ne possèdent pas de balise fermante séparée (</b:elseif> ou </b:else> n’existent pas).

Les attributs

À l’exception de la balise <b:else>, toutes les balises conditionnelles Blogger utilisent l’attribut cond.

<b:if cond='CONDITION1'>

  <b:elseif cond='CONDITION2'/>

  <b:else/>

</b:if>

Sans l’attribut cond, une balise <b:if> ou <b:elseif> n’a aucun effet : elle sera ignorée par Blogger.

Attributs Description Classification Préfixe expr: Implémentation

Condition d'exécution du noeud enfant.

Cet attribut s'intègre dans les balises <b:if> et <b:elseif>.

La valeur attendue doit être boolean (true ou false).

Elle peut être une valeur explicite, une donnée ou une expression Blogger.

XHTML Blogger Autorisé Obligatoire

Quelques exemples

Avec des valeurs explicites

<b:if cond='true'>
  
</b:if>

Les valeurs true et false étant des booléens, une valeur explicite est autorisée.

Avec une donnée booléenne

<b:if cond='data:view.isPost'>
  
</b:if>

La donnée data:view.isPost est de type boolean (booléen).

La valeur renvoie toujours true (vraie) ou false (fausse).

Avec une donnée string

<b:if cond='data:view.title'>
  
</b:if>

La donnée data:view.title est de type string (Chaîne de caractères).

La valeur est vraie uniquement si la donnée renferme une valeur.

Avec une opération de comparaison

<b:if cond='data:view.type == "item"'>
  
</b:if>

La donnée data:view.type est intégrée dans une expression Blogger contenant l'opérateur de comparaison ==.

Le résultat de l'expression est vraie uniquement si la valeur de la donnée est égale à item.

Avec une opération logique

<b:if cond='data:view.search.label and data:view.isMobile'>
  
</b:if>

Les données data:view.search.label string et data:view.isMultipleItems boolean sont intégrées dans une expression Blogger contenant l'opérateur logique and.

Le résultat de l'expression est vraie uniquement :

  • si la donnée data:view.search.label renferme une valeur.

  • et si la donnée data:view.isMultipleItems renvoie une valeur vraie.

Avec un opérateur membre

<b:if cond='data:view.search.label in ["Mes photos", "Mes vidéos"]'>
  
<b:elseif cond='data:view.search.label in ["Mes recettes", "Ma collection de chocolats"]'/>
  
<b:else/>
  
</b:if>

Dans la première condition, le résultat sera vrai, si data:view.search.label contient le terme Mes photos ou Mes vidéos.

Si la première condition est fausse, la seconde condition sera exécutée si data:view.search.label contient le terme Mes recettes ou Ma collection de chocolats.

Avec une opération lambda

<b:if cond='data:posts any (p => p.date.year == 2018)'>
  
<b:else/>
  
</b:if>

Le résultat sera vrai, si l'un des posts a été publié en 2018.

Quiz récapitulatif

Chargement du quiz…

Spotlight

Populaires cette semaine

Optimisation vocale (long-tail, langage naturel, "near me")

Dossiers “/ai-feeds/” ou sitemaps dédiés pour datasets