
🚀 Comment insérer dynamiquement le titre de la page dans l'objet de l'email de Contact Form 7
Votre site comporte une douzaine de pages avec un formulaire de contact, et chaque email arrive avec la même ligne d'objet «Message from site». De quelle rubrique provient la demande? De quelle page de services? Vous finissez par deviner à partir du texte du message.
Contact Form 7 est la référence des formulaires WordPress avec plus de 10 millions d'installations actives. Mais par défaut, il ne peut pas indiquer depuis quelle page un formulaire a été soumis. L'objet et le corps de l'email doivent être configurés de manière statique, de sorte qu'un même formulaire utilisé sur plusieurs pages produit des messages identiques.
L'extension Dynamic Text Extension (DTX) résout ce problème en cinq minutes sans une seule ligne de PHP. Vous ajoutez un champ caché au formulaire, et il capture automatiquement le titre de la page, l'URL ou le slug. Vous insérez ensuite cette variable dans l'objet ou le corps de l'email via le template. Voici un guide de configuration pas à pas, en partant de zéro.
💡 Aperçu rapide:
- Installez DTX depuis le répertoire WordPress.org et activez-le aux côtés de Contact Form 7
- Ajoutez un tag caché
[dynamichidden]avec le shortcodeCF7_get_post_varà votre formulaire - Insérez la variable dans l'objet ou le corps de l'email via l'onglet «Mail»
- Testez en soumettant depuis deux pages différentes; les emails arrivent avec des objets distincts
- Si nécessaire, ajoutez l'URL de la page ou des paramètres GET en utilisant le même mécanisme
Étape 1: installer Dynamic Text Extension

D'abord, l'extension elle-même. Elle est gratuite et disponible dans le répertoire WordPress.org sous le nom Contact Form 7, Dynamic Text Extension.
L'installation est standard: Extensions → Ajouter → recherchez «Dynamic Text Extension» → Installer → Activer. Vous devez déjà avoir Contact Form 7 actif puisque DTX en est une extension spécifique; sans CF7, il ne sert à rien.
Notez que l'extension est activement maintenue. En juin 2026, elle compte plus de 100 000 installations actives, une note de 4,5 sur WordPress.org et une compatibilité avec la dernière version de WordPress. L'auteur, Chris Mav, développe également UberMenu. Ce n'est pas l'une de ces extensions abandonnées après la première publication.
Étape 2: ajouter un champ caché au formulaire
Passons maintenant à la configuration dans Contact Form 7. Ouvrez le formulaire que vous souhaitez modifier: Contact → Formulaires de contact → cliquez sur le nom du formulaire. Vous êtes sur l'onglet Formulaire.
Copiez ce code et collez-le dans le corps du formulaire après vos champs principaux mais avant le bouton d'envoi:
1 [dynamichidden page-title "CF7_get_post_var key='title'"]
Voici ce qui se passe. dynamichidden est un type de champ DTX: invisible pour le visiteur mais inclus dans la soumission. page-title est le nom interne de la variable (arbitraire mais explicite). Entre les guillemets, le shortcode CF7_get_post_var key='title' récupère le titre de la page WordPress courante via l'objet global $post.
Si vous avez besoin de l'URL de la page au lieu du titre, remplacez le shortcode interne par CF7_URL:
1 [dynamichidden page-url "CF7_URL"]
Pour le slug, utilisez CF7_get_post_var key='slug':
1 [dynamichidden page-slug "CF7_get_post_var key='slug'"]
Vous pouvez ajouter les trois champs en même temps, et vous verrez alors le titre, l'URL et le slug dans l'email. Cliquez sur Enregistrer sous l'éditeur de formulaire.
Étape 3: insérer la variable dans le template d'email
La dernière étape consiste à indiquer à Contact Form 7 où insérer les données collectées. Allez dans l'onglet Mail du formulaire.
Dans le champ Objet, ajoutez le nom de la variable entre crochets:
1 [page-title]
L'objet complet pourrait ressembler à ceci: Message: [page-title]. Ou si vous avez ajouté l'URL: Inquiry from page: [page-url].
La même approche fonctionne dans le champ Corps du message. Vous pouvez insérer la variable [page-title] n'importe où dans le template, avant ou après le texte principal du message:
1 Submission page: [page-title] 2 URL: [page-url] 3 4 Message: 5 [your-message]
Les variables page-title, page-url et page-slug sont les noms exacts que vous avez attribués dans les tags [dynamichidden] à l'étape précédente. Ils doivent correspondre parfaitement.
Enregistrez le formulaire et testez: ouvrez deux pages quelconques de votre site contenant ce formulaire et envoyez un message de test depuis chacune. Les emails arriveront avec des objets différents selon le titre de la page où se trouvait le visiteur.
Utiliser les paramètres GET
DTX peut lire des paramètres depuis l'URL, ce qui est utile pour transmettre des informations supplémentaires via un lien. Par exemple, un bouton «Commander une consultation» sur une page de tarifs pourrait pointer vers /contact/?plan=pro. Le shortcode pour cela:
1 [dynamichidden selected-plan "CF7_GET key='plan'"]
Dans le template d'email, utilisez [selected-plan]. Le formulaire insérera automatiquement la valeur pro provenant de la chaîne de requête.
La même technique fonctionne pour les tags UTM, les identifiants de campagne et tout autre paramètre que vous passez dans l'URL.
Dans cette vidéo, l'auteur de l'extension Chris Mav montre la configuration de base de DTX en trois minutes, de l'installation au premier champ dynamique. Si l'une des étapes ci-dessus soulève des questions, regardez-la: toutes les actions sont montrées à l'écran en temps réel.
Que faire lorsque le formulaire apparaît sur toutes les pages mais que vous avez besoin de titres différents
Le scénario de base décrit ci-dessus couvre la grande majorité des cas: un seul formulaire, le titre de la page dans l'objet de l'email. Mais que faire si vous avez des dizaines de pages, chacune avec son propre formulaire et un ensemble unique de champs? Créer et configurer DTX manuellement pour chacune prend du temps.
Voici trois scénarios par ordre de complexité croissante:
Un formulaire sur toutes les pages. Le cas idéal pour DTX: ajoutez le champ caché une fois, et l'objet de l'email récupère
[page-title]. La configuration prend cinq minutes.Plusieurs formulaires différents. Configurez DTX dans chaque formulaire séparément, mais copiez les tags entre les formulaires via le presse-papiers. Le champ caché avec
CF7_get_post_varfonctionne de la même manière dans tous les formulaires.Des dizaines de pages + tests A/B. Si vous avez besoin non seulement de distinguer les pages mais de suivre les conversions des formulaires, envisagez Gravity Forms ou WPForms. Ils disposent d'analyses de soumission intégrées et d'un routage conditionnel des notifications. DTX n'est pas un concurrent ici; il résout une tâche spécifique (les champs dynamiques) et la résout gratuitement.
⁉️🤔 Foire aux questions
DTX fonctionne-t-il avec la dernière version de WordPress?
Oui, l'extension est compatible avec WordPress 6.7+ et reçoit des mises à jour régulières. En juin 2026, l'auteur publie des mises à jour tous les 1 à 2 mois, la plus récente datant de mai 2026. Vérifiez la version sur la page de l'extension, où la compatibilité actuelle est toujours indiquée.
Puis-je insérer le titre d'une page spécifique plutôt que celui de la page courante?
CF7_get_post_varextrait les données de l'objet global$post, qui fait référence à la page où le formulaire est affiché. Pour insérer le titre d'une autre page, spécifiez son ID:CF7_get_post_var key='title' post_id='42'. Vous pouvez trouver l'ID de la page dans l'administration: Pages → Toutes les pages → survolez le titre, et l'ID apparaît dans l'URL.
Que faire si la variable n'apparaît pas dans l'email?
Vérifiez trois choses. Premièrement: les noms correspondent-ils? La valeur de l'attribut dans
[dynamichidden name ...]et la variable[name]dans le template doivent être identiques, y compris la casse. Deuxièmement: le shortcode CF7 est-il enveloppé dans des types de guillemets différents? À l'intérieur des guillemets doubles, les attributs DTX doivent utiliser des guillemets simples ("CF7_get_post_var key='title'"). Troisièmement: Contact Form 7 lui-même est-il actif? Sans lui, DTX ne fonctionne pas.
Pourquoi utiliser un champ caché alors que je pourrais simplement taper le titre dans l'objet?
Le champ caché automatise le processus. Si vous avez un formulaire sur dix pages, sans DTX, vous devriez créer dix copies du formulaire avec des objets différents ou modifier manuellement l'objet pour chaque page. DTX le fait pour vous: ajoutez le champ caché une fois, et l'objet de l'email correspond toujours à la page de soumission.
Puis-je utiliser DTX pour pré-remplir des champs visibles?
Oui, remplacez
dynamichiddenpardynamictextoudynamicemail. Par exemple,[dynamictext user-name "CF7_get_current_user key='user_nicename'"]pré-remplira le champ avec le nom de l'utilisateur connecté. Le visiteur verra la valeur pré-remplie et pourra la modifier avant de soumettre.
L'extension entre-t-elle en conflit avec la mise en cache?
Non. DTX insère les valeurs côté serveur lors du rendu de la page, donc les extensions de cache comme WP Rocket ne l'affectent pas. Si vous utilisez une mise en cache au niveau du serveur (Varnish, Nginx FastCGI), assurez-vous que les pages contenant des formulaires sont exclues du cache; sinon, le titre pourrait «rester bloqué» sur le premier visiteur.
Commencez par le premier scénario: installez DTX, ajoutez un champ caché à votre formulaire actuel et testez les emails depuis deux pages différentes. Neuf sites sur dix s'arrêtent là car le besoin d'une logique plus complexe ne se présente tout simplement jamais.



