
🚀 Como inserir dinamicamente o título da página no assunto do email do Contact Form 7
O seu site tem uma dúzia de páginas com um formulário de contacto e todos os e-mails chegam com a mesma linha de assunto «Message from site». De que secção escreveu o visitante? De que página de serviços? Acaba por ter de adivinhar a partir do texto da mensagem.
O Contact Form 7 é a referência para formulários em WordPress, com mais de 10 milhões de instalações ativas. Mas, de origem, não consegue indicar a página a partir da qual um formulário foi submetido. O assunto e o corpo do e-mail têm de ser configurados estaticamente, por isso um único formulário usado em várias páginas produz mensagens idênticas.
A extensão Dynamic Text Extension (DTX) resolve isto em cinco minutos, sem uma única linha de PHP. Adiciona um campo oculto ao formulário e este captura automaticamente o título, o URL ou o slug da página. Depois, insere essa variável no assunto ou no corpo do e-mail através do modelo. Abaixo encontra um guia de configuração passo a passo, a partir do zero.
💡 Visão geral rápida:
- Instale o DTX a partir do diretório do WordPress.org e ative-o juntamente com o Contact Form 7
- Adicione ao seu formulário uma tag oculta
[dynamichidden]com o shortcodeCF7_get_post_var - Insira a variável no assunto ou no corpo do e-mail através do separador «Mail»
- Teste submetendo a partir de duas páginas diferentes; os e-mails chegam com assuntos diferentes
- Se necessário, adicione o URL da página ou parâmetros GET usando o mesmo mecanismo
Passo 1: Instalar o Dynamic Text Extension

Primeiro, o plugin em si. É gratuito e está disponível no diretório do WordPress.org com o nome Contact Form 7, Dynamic Text Extension.
A instalação é a habitual: Plugins → Adicionar Novo → pesquise por «Dynamic Text Extension» → Instalar → Ativar. Deverá ter o Contact Form 7 ativo, uma vez que o DTX é uma extensão específica para ele; sem o CF7, não serve para nada.
Note que o plugin é mantido ativamente. Em junho de 2026, conta com mais de 100 000 instalações ativas, uma classificação de 4,5 no WordPress.org e compatibilidade com a versão mais recente do WordPress. O autor, Chris Mav, também desenvolve o UberMenu. Não se trata daqueles plugins abandonados logo após o primeiro lançamento.
Passo 2: Adicionar um campo oculto ao formulário
Agora, a configuração dentro do Contact Form 7. Abra o formulário que pretende editar: Contacto → Formulários de Contacto → clique no nome do formulário. Está no separador Formulário.
Copie este código e cole-o no corpo do formulário, depois dos campos principais, mas antes do botão de envio:
1 [dynamichidden page-title "CF7_get_post_var key='title'"]
Eis o que acontece. dynamichidden é um tipo de campo do DTX: invisível para o visitante, mas incluído no envio. page-title é o nome interno da variável (arbitrário, mas significativo). Dentro das aspas, o shortcode CF7_get_post_var key='title' obtém o título da página atual do WordPress através do objeto global $post.
Se precisar do URL da página em vez do título, substitua o shortcode interno por CF7_URL:
1 [dynamichidden page-url "CF7_URL"]
Para o slug, use CF7_get_post_var key='slug':
1 [dynamichidden page-slug "CF7_get_post_var key='slug'"]
Pode adicionar os três campos de uma vez e, assim, verá o título, o URL e o slug no e-mail. Clique em Guardar por baixo do editor do formulário.
Passo 3: Inserir a variável no modelo de e-mail
O passo final é indicar ao Contact Form 7 onde inserir os dados recolhidos. Vá ao separador Mail dentro do formulário.
No campo Assunto, adicione o nome da variável entre parênteses retos:
1 [page-title]
O assunto completo poderá ser algo como: Message: [page-title]. Ou, se adicionou o URL: Inquiry from page: [page-url].
A mesma abordagem funciona no campo Corpo da Mensagem. Pode inserir a variável [page-title] em qualquer parte do modelo, antes ou depois do texto principal da mensagem:
1 Submission page: [page-title] 2 URL: [page-url] 3 4 Message: 5 [your-message]
As variáveis page-title, page-url e page-slug são exatamente os nomes que atribuiu nas tags [dynamichidden] no passo anterior. Têm de corresponder exatamente.
Guarde o formulário e teste: abra duas páginas quaisquer do seu site que contenham este formulário e envie uma mensagem de teste a partir de cada uma. Os e-mails chegarão com assuntos diferentes, consoante o título da página onde o visitante se encontrava.
Usar parâmetros GET
O DTX consegue ler parâmetros do URL, o que é útil quando se pretende passar informação adicional através de um link. Por exemplo, um botão «Solicitar consulta» numa página de preços pode apontar para /contact/?plan=pro. O shortcode para isto:
1 [dynamichidden selected-plan "CF7_GET key='plan'"]
No modelo de e-mail, use [selected-plan]. O formulário irá inserir automaticamente o valor pro da string de consulta.
A mesma técnica funciona para tags UTM, identificadores de campanha e quaisquer outros parâmetros que passe no URL.
Neste vídeo, o autor do plugin, Chris Mav, demonstra a configuração básica do DTX em três minutos, desde a instalação até ao primeiro campo dinâmico. Se algum dos passos acima lhe suscitar dúvidas, veja-o: todas as ações são mostradas no ecrã em tempo real.
O que fazer quando o formulário aparece em todas as páginas, mas precisa de títulos diferentes
O cenário básico descrito acima cobre a grande maioria dos casos: um formulário, título da página no assunto do e-mail. Mas e se tiver dezenas de páginas, cada uma com o seu próprio formulário e um conjunto único de campos? Criar e configurar o DTX manualmente para cada uma leva tempo.
Aqui ficam três cenários, por ordem crescente de complexidade:
Um formulário em todas as páginas. O caso ideal para o DTX: adicione o campo oculto uma vez e o assunto do e-mail assume o
[page-title]. A configuração demora cinco minutos.Vários formulários diferentes. Configure o DTX em cada formulário separadamente, mas copie as tags entre formulários através da área de transferência. O campo oculto com
CF7_get_post_varfunciona da mesma forma em todos os formulários.Dezenas de páginas + testes A/B. Se precisar não só de distinguir páginas, mas também de acompanhar as conversões dos formulários, considere o Gravity Forms ou o WPForms. Estes dispõem de análises de submissão integradas e encaminhamento condicional de notificações. O DTX não é um concorrente aqui; resolve uma tarefa específica (campos dinâmicos) e fá-lo gratuitamente.
⁉️🤔 Perguntas frequentes
O DTX funciona com a versão mais recente do WordPress?
Sim, o plugin é compatível com o WordPress 6.7+ e recebe atualizações regulares. Em junho de 2026, o autor lança atualizações a cada 1 ou 2 meses, sendo a mais recente de maio de 2026. Verifique a versão na página do plugin, onde a compatibilidade atual está sempre listada.
Posso inserir o título de uma página específica em vez da atual?
O
CF7_get_post_varobtém dados do objeto global$post, que se refere à página onde o formulário é exibido. Para inserir o título de uma página diferente, especifique o seu ID:CF7_get_post_var key='title' post_id='42'. Pode encontrar o ID da página na administração: Páginas → Todas as Páginas → passe o rato sobre o título e o ID aparece no URL.
E se a variável não aparecer no e-mail?
Verifique três coisas. Primeiro: os nomes correspondem? O valor do atributo em
[dynamichidden name ...]e a variável[name]no modelo têm de ser idênticos, incluindo maiúsculas e minúsculas. Segundo: o shortcode do CF7 está envolvido em tipos de aspas diferentes? Dentro de aspas duplas, os atributos do DTX devem usar aspas simples ("CF7_get_post_var key='title'"). Terceiro: o próprio Contact Form 7 está ativo? Sem ele, o DTX não funciona.
Porquê usar um campo oculto se posso simplesmente escrever o título no assunto?
O campo oculto automatiza o processo. Se tiver um formulário em dez páginas, sem o DTX teria de criar dez cópias do formulário com assuntos diferentes ou alterar manualmente o assunto para cada página. O DTX faz isto por si: adicione o campo oculto uma vez e o assunto do e-mail corresponde sempre à página de submissão.
Posso usar o DTX para pré-preencher campos visíveis?
Sim, substitua
dynamichiddenpordynamictextoudynamicemail. Por exemplo,[dynamictext user-name "CF7_get_current_user key='user_nicename'"]irá pré-preencher o campo com o nome do utilizador autenticado. O visitante verá o valor pré-preenchido e poderá editá-lo antes de enviar.
O plugin entra em conflito com cache?
Não. O DTX insere os valores do lado do servidor quando a página é renderizada, por isso plugins de cache como o WP Rocket não o afetam. Se usar cache ao nível do servidor (Varnish, Nginx FastCGI), certifique-se de que as páginas com formulários são excluídas da cache; caso contrário, o título pode «colar-se» ao primeiro visitante.
Comece pelo primeiro cenário: instale o DTX, adicione um campo oculto ao seu formulário atual e teste os e-mails a partir de duas páginas diferentes. Nove em cada dez sites ficam por aqui, porque a necessidade de lógica mais complexa simplesmente nunca surge.



