L’opérateur de concaténation

L’opérateur de concaténation est un véritable outil polyvalent dans les thèmes Blogger : il relie une chaîne de caractères à une autre valeur pour former une nouvelle chaîne.
Utile pour générer des titres, descriptions ou messages dynamiques, il rend vos données plus lisibles.
Introduction à la concaténation
Dans le langage des thèmes Blogger, le symbole +
a deux visages. Utilisé entre deux nombres, il réalise une addition. Placé à côté d’une chaîne de caractères, il change de rôle : il devient l’opérateur de concaténation.
Sa mission ? Transformer des données disparates — texte, nombres, booléens — en une seule chaîne lisible. C’est ce qui permet d’afficher des phrases dynamiques comme un titre personnalisé, une description enrichie ou un message conditionnel.
Les syntaxes d'écriture
L’opérateur de concaténation accepte deux écritures. La plus répandue est la forme infixe, où l’opérateur +
se place entre les deux valeurs. Il existe aussi une forme fonctionnelle, moins fréquente mais équivalente, qui s’écrit comme un appel de fonction.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Concaténation |
+ |
Syntaxes Infixes (par défaut) string + allType allType + string Syntaxes Fonctionnelles +(string,allType) +(allType,string) |
2+ | string |
Utilisation et règles
L’opérateur
+
permet de joindre une chaîne de caractères avec toute autre valeur (texte, nombre, booléen, expression…).Le résultat est toujours une nouvelle chaîne.
-
Les opérandes peuvent être :
une valeur explicite (ex. "Hello"),
une donnée Blogger (ex.
data:blog.title
),ou le résultat d’une autre expression (ex. un test conditionnel).
L’opération peut être imbriquée dans toute expression qui attend une chaîne.
Ne pas confondre avec l’addition : si les deux opérandes sont des nombres,
+
calcule une somme au lieu d’une concaténation.
Cas particulier : la surcharge de l’opérateur +
Sur Blogger, l’opérateur +
n’est pas réservé strictement à la concaténation : il peut aussi jouer le rôle d’addition. Ce double comportement s’explique par un phénomène appelé surcharge d’opérateur, combiné à une coercition de type.
-
Avec un littéral string
ex.
"10" + 10
→ l’opérateur+
est interprété comme une concaténation → résultat"1010"
. -
Avec une donnée/variable contenant une chaîne numérique
ex.
10 + data:string
(data:string
vaut"10"
) → la valeur est convertie en nombre lors de l’évaluation → résultat20
.
En théorie des langages, ce phénomène correspond à du polymorphisme ad hoc : un même symbole a plusieurs interprétations selon le type des valeurs qu’il manipule.
Pour éviter toute ambiguïté, il est recommandé de forcer le type :
Multiplier par
1
ou ajouter0
pour s’assurer d’un nombre.Préfixer d’une chaîne vide (
"" + valeur
) pour forcer une concaténation.
Quelques exemples de concaténation
2 valeurs explicites
<b:eval expr='"I love" + " Blogger"'/>
Le résultat de l'opération sera : I love Blogger
.
Une valeur explicite et une donnée
<b:eval expr='"I love" + data:blog.title'/>
Le résultat de l'opération sera : I love Blogger Code PE
.
Plusieurs valeurs explicites et plusieurs données
<b:eval expr='"Le sens de lecture du blog " + data:blog.title + " est " + data:blog.languageDirection + "."'/>
Le résultat de l'opération sera : Le sens de lecture du blog Blogger Code PE est ltr.
.
Avec une opération imbriquée
<b:eval expr='"Le blog " + data:blog.title + " est " + (data:blog.isPrivate ? "privé" : "public") + "."'/>
Le résultat de l'opération sera : Le blog Blogger Code PE est public.
.
Avec un booléen
<b:eval expr='"Privé ? " + data:blog.isPrivate'/>
Le résultat de l'opération sera : Privé ? false
.
Avec un nombre
<b:eval expr='"Année " + data:post.date.year'/>
Le résultat de l'opération sera : Année 2025
.
Avec 2 nombres explicites
<!-- 1. Avec des guillemets --> <b:eval expr='"20" + "25"'/> <!-- 2. Sans guillemets --> <b:eval expr='20 + 25 + ""'/>
Cas 1 : les guillemets transforment les nombres en chaînes de caractères.
Cas 2 : l’ajout d’une chaîne vide force la conversion du résultat numérique en chaîne.
Dans les deux situations, le résultat final est : 2025
.
Avec 2 données numériques
<b:eval expr='data:post.date.month + "/" + data:post.date.year'/>
L’ajout d’une chaîne de caractères "/"
force la conversion et assure un séparateur explicite entre les valeurs.
Le résultat de l’opération sera : 12/2025
.
Additionner et concaténer des nombres
<b:eval expr='"20+25=" + (20 + 25)'/>
Les parenthèses obligent à effectuer l’addition avant toute autre opération : 20 + 25
est évalué à 45
, puis transformé en chaîne et concaténé au texte.
Le résultat de l’opération sera : 20+25=45
.
Personnaliser une URL
<!-- Mauvaise pratique --> <b:eval expr='data:view.url + "?utm_source=blog"'/> <!-- Bonne pratique --> <b:eval expr='data:view.url appendParams { utm_source: "blog" }'/>
Il est déconseillé de concaténer des URL avec l’opérateur +
, car cela peut générer des liens incorrects (par exemple avec plusieurs ?
ou sans encodage).
Il est préférable d’utiliser les opérateurs d’URL prévus à cet effet.