Les balises conditionnelles / Conditional tags : <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 La valeur attendue doit être boolean ( 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.