
🚀 Jak dynamicznie podstawić tytuł strony w temat wiadomości Contact Form 7
Na stronie jest kilkanaście podstron z formularzem kontaktowym i wszystkie wiadomości przychodzą z tym samym tematem „Wiadomość ze strony". Z którego działu wysłał ją odwiedzający? Z której strony usług? Trzeba zgadywać na podstawie treści wiadomości.
Contact Form 7, standard dla formularzy WordPress: ponad 10 milionów aktywnych instalacji. Jednak od razu po instalacji nie rozróżnia, z której strony formularz został wysłany. Temat wiadomości i jej treść trzeba konfigurować statycznie, jeden formularz na wszystkich stronach generuje to samo.
Wtyczka Dynamic Text Extension (DTX) rozwiązuje ten problem w pięć minut, bez ani jednej linijki PHP. Dodaje Pan ukryte pole do formularza, które automatycznie pobiera tytuł strony, jej adres URL lub slug. Następnie w szablonie wiadomości umieszcza Pan tę zmienną w temacie lub treści. Poniżej znajduje się szczegółowa instrukcja konfiguracji krok po kroku.
💡 Szybki przegląd:
- Instaluje Pan DTX z katalogu WordPress.org i aktywuje obok Contact Form 7
- Dodaje Pan ukryty tag
[dynamichidden]z shortcodemCF7_get_post_vardo formularza - Wstawia Pan zmienną do tematu lub treści wiadomości w zakładce „Wiadomość"
- Sprawdza Pan wysyłanie na dwóch różnych stronach, wiadomości przychodzą z różnymi tytułami
- W razie potrzeby dodaje Pan adres URL strony lub parametry GET za pomocą tego samego mechanizmu
Krok 1: Instalacja Dynamic Text Extension

Przede wszystkim sama wtyczka. Jest bezpłatna, znajduje się w katalogu WordPress.org pod nazwą Contact Form 7, Dynamic Text Extension.
Instalacja jest standardowa: Wtyczki → Dodaj nową → w wyszukiwaniu „Dynamic Text Extension" → Zainstaluj → Aktywuj. Musi Pan mieć już aktywny Contact Form 7, DTX rozszerza właśnie jego działanie, bez CF7 jest bezużyteczny.
Proszę zwrócić uwagę: wtyczka jest aktywnie wspierana. Na czerwiec 2026 roku ma ponad 100 000 aktywnych instalacji, ocenę 4,5 na WordPress.org i zgodność z najnowszą wersją WordPressa. Jej autor, Chris Mav, tworzy również UberMenu. Nie jest to wtyczka porzucona po pierwszym wydaniu.
Krok 2: Dodanie ukrytego pola do formularza
Teraz konfiguracja wewnątrz Contact Form 7. Proszę otworzyć odpowiedni formularz: Kontakt → Formularze kontaktowe → kliknąć nazwę. Znajduje się Pan w zakładce Formularz.
Proszę skopiować ten kod i wkleić go w treść formularza, po głównych polach, przed przyciskiem wysyłania:
1 [dynamichidden page-title "CF7_get_post_var key='title'"]
Oto, co się tu dzieje. dynamichidden to typ pola DTX: jest niewidoczne dla odwiedzającego, ale bierze udział w wysyłaniu. page-title to wewnętrzna nazwa zmiennej (dowolna, ale znacząca). Wewnątrz cudzysłowów znajduje się shortcode CF7_get_post_var key='title', który pobiera tytuł bieżącej strony WordPress za pośrednictwem globalnego obiektu $post.
Jeśli zamiast tytułu potrzebny jest Panu adres URL strony, proszę zastąpić wewnętrzny shortcode kodem CF7_URL:
1 [dynamichidden page-url "CF7_URL"]
A jeśli slug (identyfikator), proszę użyć CF7_get_post_var key='slug':
1 [dynamichidden page-slug "CF7_get_post_var key='slug'"]
Można dodać wszystkie trzy pola jednocześnie, wtedy w wiadomości zobaczy Pan tytuł, adres URL i slug. Proszę kliknąć Zapisz pod edytorem formularza.
Krok 3: Umieszczenie zmiennej w szablonie wiadomości
Ostatni krok: wskazać Contact Form 7, gdzie wstawić zebrane dane. Proszę przejść do zakładki Wiadomość wewnątrz formularza.
W polu Temat proszę dodać nazwę zmiennej w nawiasach kwadratowych:
1 [page-title]
Pełny temat może wyglądać następująco: Сообщение: [page-title]. Lub, jeśli dodał/a Pan/Pani URL: Заявка со страницы: [page-url].
To samo działa w polu Treść wiadomości, zmienną [page-title] można wstawić w dowolnym miejscu szablonu, przed lub po głównej treści wiadomości:
1 Страница отправки: [page-title] 2 URL: [page-url] 3 4 Сообщение: 5 [your-message]
Zmienne page-title, page-url i page-slug to te same nazwy, które zdefiniował/a Pan/Pani w tagach [dynamichidden] w poprzednim kroku. Muszą być one identyczne.
Proszę zapisać formularz i przetestować: otworzyć dwie dowolne strony witryny z tym formularzem i wysłać z każdej testową wiadomość. Wiadomości e-mail przyjdą z różnymi tematami, w zależności od tytułu strony, na której znajdował się odwiedzający.
Wariant z parametrami GET
DTX potrafi odczytywać parametry z adresu URL, co jest przydatne, gdy przekazuje Pan/Pani dodatkowe informacje przez link. Na przykład przycisk „Zamów konsultację" na stronie cennika może prowadzić na /contact/?plan=pro. Shortcode do tego celu:
1 [dynamichidden selected-plan "CF7_GET key='plan'"]
A w szablonie wiadomości e-mail: [selected-plan]. Formularz sam wstawi wartość pro z ciągu zapytania.
Ta sama technika działa w przypadku znaczników UTM, identyfikatorów kampanii i wszelkich innych parametrów przekazywanych w adresie URL.
W tym filmie autor wtyczki, Chris Mav, pokazuje podstawową konfigurację DTX w trzy minuty, od instalacji do pierwszego pola dynamicznego. Jeśli opisane powyżej kroki budzą wątpliwości, proszę obejrzeć: wszystkie czynności są pokazane na ekranie w czasie rzeczywistym.
Co zrobić, gdy formularz jest na wszystkich stronach, a tematy mają być różne
Opisany powyżej podstawowy scenariusz pokrywa zdecydowaną większość przypadków: jeden formularz, wyświetlanie tytułu strony w temacie wiadomości. Co jednak, jeśli ma Pan/Pani dziesiątki stron i na każdej osobny formularz z własnym zestawem pól? Ręczne tworzenie i konfigurowanie DTX dla każdego z nich jest czasochłonne.
Oto trzy scenariusze według rosnącego stopnia skomplikowania:
Jeden formularz na wszystkich stronach. Idealny przypadek dla DTX: dodaje Pan/Pani ukryte pole raz, a temat wiadomości automatycznie pobiera
[page-title]. Konfiguracja zajmuje pięć minut.Kilka różnych formularzy. Proszę skonfigurować DTX w każdym formularzu osobno, ale kopiować tagi między formularzami przez schowek. Ukryte pole z
CF7_get_post_vardziała tak samo we wszystkich formularzach.Dziesiątki stron + testy A/B. Jeśli potrzebuje Pan/Pani nie tylko rozróżniać strony, ale także śledzić konwersje według formularzy, warto rozważyć Gravity Forms lub WPForms. Mają one wbudowaną analitykę wysyłek i routing powiadomień na podstawie warunków. DTX nie jest tu konkurencją, rozwiązuje konkretne zadanie pól dynamicznych i robi to bezpłatnie.
⁉️🤔 Często zadawane pytania
Czy DTX działa z najnowszą wersją WordPressa?
Tak, wtyczka jest kompatybilna z WordPress 6.7+ i regularnie aktualizowana. Według stanu na czerwiec 2026 roku autor wydaje aktualizacje co 1-2 miesiące, ostatnia miała miejsce w maju 2026. Proszę sprawdzić wersję na stronie wtyczki, zawsze podana jest tam aktualna kompatybilność.
Czy można wstawić tytuł nie bieżącej, a konkretnej strony?
CF7_get_post_varpobiera dane z globalnego obiektu$post, czyli strony, na której wyświetlany jest formularz. Aby wstawić tytuł innej strony, proszę podać jej ID:CF7_get_post_var key='title' post_id='42'. ID strony można sprawdzić w panelu administracyjnym: Strony → Wszystkie strony → proszę najechać na nazwę, ID wyświetli się w adresie URL.
Co zrobić, jeśli zmienna nie jest wstawiana do wiadomości e-mail?
Proszę sprawdzić trzy rzeczy. Po pierwsze: czy nazwy są zgodne, wartość atrybutu w
[dynamichidden имя ...]i zmienna[имя]w szablonie muszą być identyczne, z uwzględnieniem wielkości liter. Po drugie: czy shortcode CF7 nie został ujęty w cudzysłów innego typu, wewnątrz podwójnych cudzysłowów atrybuty DTX muszą być w pojedynczych ("CF7_get_post_var key='title'"). Po trzecie: czy sam Contact Form 7 jest aktywny, bez niego DTX nie działa.
Po co ukryte pole, skoro można po prostu wpisać tytuł w temacie?
Ukryte pole automatyzuje proces. Jeśli mają Państwo jeden formularz na dziesięciu stronach, bez DTX trzeba by tworzyć dziesięć kopii formularza z różnymi tematami albo ręcznie zmieniać temat dla każdej strony. DTX robi to za Państwa: dodają Państwo ukryte pole raz, a temat wiadomości zawsze jest zgodny ze stroną, z której wysłano formularz.
Czy można używać DTX do wstępnego wypełniania widocznych pól?
Tak, proszę zamienić
dynamichiddennadynamictextlubdynamicemail. Na przykład[dynamictext user-name "CF7_get_current_user key='user_nicename'"]wstępnie wypełni pole nazwą zalogowanego użytkownika. Odwiedzający zobaczy podstawioną wartość i będzie mógł ją zmienić przed wysłaniem.
Czy wtyczka koliduje z pamięcią podręczną?
Nie. DTX podstawia wartości po stronie serwera podczas renderowania strony, wtyczki cache, takie jak WP Rocket, nie mają na to wpływu. Jeśli korzystają Państwo z cache serwerowego (Varnish, Nginx FastCGI), proszę upewnić się, że strony z formularzami są wykluczone z cache, w przeciwnym razie tytuł może „przykleić się" do pierwszego odwiedzającego.
Proszę zacząć od pierwszego scenariusza: zainstalować DTX, dodać ukryte pole w obecnym formularzu, sprawdzić wiadomości z dwóch różnych stron. Dziewięć na dziesięć witryn na tym poprzestaje, potrzeba bardziej złożonej logiki po prostu nie występuje.



