Skip to content

Wszystko o WordPressie, tworzeniu stron — i nie tylko

🚀 Jak dynamicznie podstawić tytuł strony w temat wiadomości Contact Form 7

🚀 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 shortcodem CF7_get_post_var do 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

Strona wtyczki Contact Form 7 Dynamic Text Extension w katalogu WordPress.org

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]
2URL: [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_var dział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_var pobiera 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ć dynamichidden na dynamictext lub dynamicemail. 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.