
🚀 Come inserire dinamicamente il titolo della pagina nell'oggetto email di Contact Form 7
Il tuo sito ha una dozzina di pagine con un modulo di contatto, e ogni email arriva con lo stesso oggetto "Message from site." Da quale sezione ha scritto il visitatore? Da quale pagina dei servizi? Finisci per tirare a indovinare dal testo del messaggio.
Contact Form 7 è lo standard per i moduli WordPress con oltre 10 milioni di installazioni attive. Ma di default non è in grado di capire da quale pagina è stato inviato un modulo. L'oggetto e il corpo dell'email vanno configurati in modo statico, quindi un singolo modulo usato su più pagine produce messaggi identici.
L'estensione Dynamic Text Extension (DTX) risolve il problema in cinque minuti senza una sola riga di PHP. Aggiungi un campo nascosto al modulo, e questo cattura automaticamente il titolo della pagina, l'URL o lo slug. Poi inserisci quella variabile nell'oggetto o nel corpo dell'email tramite il template. Di seguito trovi una guida passo passo per la configurazione da zero.
💡 Panoramica rapida:
- Installa DTX dalla directory di WordPress.org e attivalo insieme a Contact Form 7
- Aggiungi un tag nascosto
[dynamichidden]con lo shortcodeCF7_get_post_varal tuo modulo - Inserisci la variabile nell'oggetto o nel corpo dell'email tramite la scheda "Mail"
- Testa inviando da due pagine diverse; le email arrivano con oggetti diversi
- Se necessario, aggiungi l'URL della pagina o i parametri GET usando lo stesso meccanismo
Step 1: installare Dynamic Text Extension

Prima di tutto, il plugin. È gratuito e disponibile nella directory di WordPress.org con il nome Contact Form 7, Dynamic Text Extension.
L'installazione è standard: Plugin → Aggiungi nuovo → cerca "Dynamic Text Extension" → Installa → Attiva. Dovresti già avere Contact Form 7 attivo, dato che DTX lo estende in modo specifico; senza CF7 non serve a nulla.
Nota che il plugin è mantenuto attivamente. A giugno 2026 conta oltre 100.000 installazioni attive, una valutazione di 4,5 su WordPress.org e compatibilità con l'ultima versione di WordPress. L'autore, Chris Mav, sviluppa anche UberMenu. Non è uno di quei plugin abbandonati dopo il primo rilascio.
Step 2: aggiungere un campo nascosto al modulo
Ora passiamo alla configurazione all'interno di Contact Form 7. Apri il modulo che vuoi modificare: Contatti → Moduli di contatto → clicca sul nome del modulo. Ti trovi nella scheda Form.
Copia questo codice e incollalo nel corpo del modulo dopo i campi principali ma prima del pulsante di invio:
1 [dynamichidden page-title "CF7_get_post_var key='title'"]
Ecco cosa succede. dynamichidden è un tipo di campo DTX: invisibile al visitatore ma incluso nell'invio. page-title è il nome interno della variabile (arbitrario ma significativo). All'interno delle virgolette, lo shortcode CF7_get_post_var key='title' recupera il titolo della pagina WordPress corrente tramite l'oggetto globale $post.
Se ti serve l'URL della pagina invece del titolo, sostituisci lo shortcode interno con CF7_URL:
1 [dynamichidden page-url "CF7_URL"]
Per lo slug, usa CF7_get_post_var key='slug':
1 [dynamichidden page-slug "CF7_get_post_var key='slug'"]
Puoi aggiungere tutti e tre i campi insieme, e poi vedrai titolo, URL e slug nell'email. Clicca Salva sotto l'editor del modulo.
Step 3: inserire la variabile nel template dell'email
L'ultimo passo è indicare a Contact Form 7 dove inserire i dati raccolti. Vai alla scheda Mail all'interno del modulo.
Nel campo Oggetto, aggiungi il nome della variabile tra parentesi quadre:
1 [page-title]
L'oggetto completo potrebbe apparire così: Message: [page-title]. Oppure, se hai aggiunto l'URL: Inquiry from page: [page-url].
Lo stesso approccio funziona nel campo Corpo del messaggio. Puoi inserire la variabile [page-title] in qualsiasi punto del template, prima o dopo il testo principale del messaggio:
1 Submission page: [page-title] 2 URL: [page-url] 3 4 Message: 5 [your-message]
Le variabili page-title, page-url e page-slug sono i nomi esatti che hai assegnato nei tag [dynamichidden] nel passo precedente. Devono corrispondere esattamente.
Salva il modulo e fai una prova: apri due pagine qualsiasi del tuo sito che contengono questo modulo e invia un messaggio di test da ciascuna. Le email arriveranno con oggetti diversi a seconda del titolo della pagina in cui si trovava il visitatore.
Usare i parametri GET
DTX può leggere i parametri dall'URL, il che è utile quando si passano informazioni aggiuntive tramite un link. Ad esempio, un pulsante "Richiedi consulenza" su una pagina di prezzi potrebbe linkare a /contact/?plan=pro. Lo shortcode per questo caso:
1 [dynamichidden selected-plan "CF7_GET key='plan'"]
Nel template dell'email, usa [selected-plan]. Il modulo inserirà automaticamente il valore pro dalla stringa di query.
La stessa tecnica funziona per i tag UTM, gli identificatori di campagna e qualsiasi altro parametro passato nell'URL.
In questo video, l'autore del plugin Chris Mav mostra la configurazione base di DTX in tre minuti, dall'installazione al primo campo dinamico. Se uno qualsiasi dei passaggi precedenti solleva dubbi, guardalo: tutte le azioni sono mostrate a schermo in tempo reale.
Cosa fare quando il modulo appare su tutte le pagine ma servono titoli diversi
Lo scenario base descritto sopra copre la stragrande maggioranza dei casi: un modulo, titolo della pagina nell'oggetto dell'email. Ma cosa succede se hai decine di pagine, ciascuna con il proprio modulo e un set unico di campi? Creare e configurare DTX manualmente per ognuna richiede tempo.
Ecco tre scenari in ordine di complessità crescente:
Un modulo su tutte le pagine. Il caso ideale per DTX: aggiungi il campo nascosto una volta sola, e l'oggetto dell'email recupera
[page-title]. La configurazione richiede cinque minuti.Diversi moduli distinti. Configura DTX in ciascun modulo separatamente, ma copia i tag tra i moduli tramite gli appunti. Il campo nascosto con
CF7_get_post_varfunziona allo stesso modo in tutti i moduli.Decine di pagine + test A/B. Se hai bisogno non solo di distinguere le pagine ma di tracciare le conversioni dei moduli, prendi in considerazione Gravity Forms o WPForms. Hanno analisi delle submission integrate e routing condizionale delle notifiche. DTX non è un concorrente in questo caso; risolve un compito specifico (campi dinamici) e lo fa gratuitamente.
⁉️🤔 Domande frequenti
DTX funziona con l'ultima versione di WordPress?
Sì, il plugin è compatibile con WordPress 6.7+ e riceve aggiornamenti regolari. A giugno 2026 l'autore rilascia aggiornamenti ogni 1-2 mesi, con il più recente a maggio 2026. Verifica la versione sulla pagina del plugin, dove la compatibilità attuale è sempre indicata.
Posso inserire il titolo di una pagina specifica invece di quella corrente?
CF7_get_post_varrecupera i dati dall'oggetto globale$post, che si riferisce alla pagina in cui è visualizzato il modulo. Per inserire il titolo di una pagina diversa, specifica il suo ID:CF7_get_post_var key='title' post_id='42'. Puoi trovare l'ID della pagina nell'amministrazione: Pagine → Tutte le pagine → passa il mouse sul titolo, e l'ID compare nell'URL.
Cosa fare se la variabile non compare nell'email?
Verifica tre cose. Primo: i nomi corrispondono? Il valore dell'attributo in
[dynamichidden name ...]e la variabile[name]nel template devono essere identici, incluse le maiuscole e minuscole. Secondo: lo shortcode CF7 è racchiuso tra tipi di virgolette diversi? All'interno delle virgolette doppie, gli attributi DTX devono usare virgolette singole ("CF7_get_post_var key='title'"). Terzo: Contact Form 7 stesso è attivo? Senza di esso, DTX non funziona.
Perché usare un campo nascosto quando potrei semplicemente digitare il titolo nell'oggetto?
Il campo nascosto automatizza il processo. Se hai un modulo su dieci pagine, senza DTX dovresti creare dieci copie del modulo con oggetti diversi o cambiare manualmente l'oggetto per ogni pagina. DTX lo fa per te: aggiungi il campo nascosto una volta sola, e l'oggetto dell'email corrisponde sempre alla pagina di invio.
Posso usare DTX per pre-compilare campi visibili?
Sì, sostituisci
dynamichiddencondynamictextodynamicemail. Ad esempio,[dynamictext user-name "CF7_get_current_user key='user_nicename'"]pre-compilerà il campo con il nome dell'utente che ha effettuato l'accesso. Il visitatore vedrà il valore pre-compilato e potrà modificarlo prima di inviare.
Il plugin è in conflitto con la cache?
No. DTX inserisce i valori lato server quando la pagina viene renderizzata, quindi i plugin di cache come WP Rocket non lo influenzano. Se usi una cache a livello server (Varnish, Nginx FastCGI), assicurati che le pagine con i moduli siano escluse dalla cache; altrimenti, il titolo potrebbe "rimanere incollato" al primo visitatore.
Inizia con il primo scenario: installa DTX, aggiungi un campo nascosto al tuo modulo attuale e testa le email da due pagine diverse. Nove siti su dieci si fermano qui, perché la necessità di una logica più complessa semplicemente non si presenta mai.



