{"id":2849,"date":"2025-06-27T17:00:00","date_gmt":"2025-06-27T16:00:00","guid":{"rendered":"https:\/\/wlc.team\/?p=2849"},"modified":"2025-06-27T17:00:00","modified_gmt":"2025-06-27T16:00:00","slug":"jak-zbudowac-wlasna-podstrone-w-wordpressie","status":"publish","type":"post","link":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/","title":{"rendered":"Jak zbudowa\u0107 w\u0142asn\u0105 podstron\u0119 w WordPressie?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Pytanie o w\u0142asn\u0105 podstron\u0119 ma dzi\u015b pi\u0119\u0107 r\u00f3\u017cnych odpowiedzi i wyb\u00f3r mi\u0119dzy nimi decyduje o kosztach utrzymania na lata. Najprostsza to uk\u0142ad z\u0142o\u017cony w edytorze blok\u00f3w z gotowego wzorca. Najbardziej rozbudowana to w\u0142asna wtyczka z odr\u0119bnym modelem danych. Mi\u0119dzy nimi mieszcz\u0105 si\u0119 szablony podstron, w\u0142asne typy tre\u015bci i pola dodatkowe. Zasada jest prosta: schod\u017a ni\u017cej tylko wtedy, gdy poziom wy\u017cej naprawd\u0119 nie wystarcza.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pi\u0119\u0107 poziom\u00f3w rozwi\u0105za\u0144<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Poni\u017csza kolejno\u015b\u0107 odpowiada rosn\u0105cej z\u0142o\u017cono\u015bci i rosn\u0105cemu kosztowi utrzymania.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Edytor blok\u00f3w i wzorce<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wi\u0119kszo\u015b\u0107 podstron odbiegaj\u0105cych wygl\u0105dem od reszty serwisu da si\u0119 dzi\u015b zbudowa\u0107 w edytorze blok\u00f3w. <strong>Wzorce blok\u00f3w<\/strong> to gotowe uk\u0142ady sekcji, kt\u00f3re zesp\u00f3\u0142 marketingu sk\u0142ada samodzielnie i zapisuje do ponownego u\u017cycia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To rozwi\u0105zanie ma jedn\u0105 przewag\u0119, kt\u00f3rej nie maj\u0105 pozosta\u0142e: nie wymaga programisty przy ka\u017cdej zmianie. Strona docelowa kampanii zbudowana z wzorc\u00f3w powstaje w godzin\u0119 i jest modyfikowana bez zg\u0142oszenia do zespo\u0142u technicznego.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Szablon podstrony w motywie blokowym<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Gdy potrzebny jest uk\u0142ad wykraczaj\u0105cy poza tre\u015b\u0107, na przyk\u0142ad podstrona bez nag\u0142\u00f3wka i stopki albo z inn\u0105 struktur\u0105 kolumn, odpowiedzi\u0105 jest <strong>szablon w motywie blokowym<\/strong>: plik HTML w katalogu <code>templates\/<\/code>, przypisywany z poziomu edytora.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do tego dochodz\u0105 wariacje styl\u00f3w, je\u015bli sekcja ma mie\u0107 w\u0142asn\u0105 palet\u0119 kolor\u00f3w lub typografi\u0119. Nadal bez pisania PHP.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Klasyczny szablon podstrony<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">W motywach klasycznych w\u0142asny szablon to plik PHP w katalogu motywu, z nag\u0142\u00f3wkiem komentarza <code>Template Name<\/code>, dzi\u0119ki kt\u00f3remu pojawia si\u0119 na li\u015bcie szablon\u00f3w w edytorze.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jedna uwaga praktyczna. Nazewnictwo oparte na identyfikatorze podstrony (<code>page-{ID}.php<\/code>) dzia\u0142a, ale jest kruche: identyfikatory r\u00f3\u017cni\u0105 si\u0119 mi\u0119dzy \u015brodowiskiem testowym a produkcyjnym i rozje\u017cd\u017caj\u0105 si\u0119 przy migracji. Nazwa oparta na slugu (<code>page-uslugi.php<\/code>) albo szablon z <code>Template Name<\/code> s\u0105 bezpieczniejsze.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ten poziom niesie ukryty koszt. Szablon zapisany w motywie oznacza, \u017ce ka\u017cda zmiana uk\u0142adu wymaga programisty i wdro\u017cenia. Przy podstronach zmienianych raz na trzy lata to nie problem. Przy stronach kampanii to w\u0105skie gard\u0142o. Dla podstrony budowanej wprost z surowego kodu zamiast szablonu motywu, zobacz <a href=\"https:\/\/wlc.team\/pl\/blog\/jak-stworzyc-wlasny-szablon-html-i-przeniesc-go-do-wordpressa\/\" target=\"_blank\" rel=\"noopener\">jak stworzy\u0107 w\u0142asny szablon HTML<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. W\u0142asne typy tre\u015bci i pola dodatkowe<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Gdy chodzi o powtarzalny zbi\u00f3r danych, a nie pojedyncz\u0105 podstron\u0119, w\u0142a\u015bciw\u0105 odpowiedzi\u0105 s\u0105 <strong>w\u0142asne typy tre\u015bci<\/strong>. Katalog produkt\u00f3w, baza wiedzy, lista lokalizacji czy oferty pracy zorganizowane jako osobny typ z w\u0142asnymi taksonomiami s\u0105 \u0142atwiejsze w utrzymaniu ni\u017c kilkadziesi\u0105t stron w p\u0142askiej strukturze.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Advanced Custom Fields rozszerza model danych o pola, kt\u00f3rych WordPress nie ma standardowo. To standardowe narz\u0119dzie w projektach, gdzie redakcja wype\u0142nia ustrukturyzowane dane, a nie dowoln\u0105 tre\u015b\u0107.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Zarejestruj typ tre\u015bci we w\u0142asnej wtyczce, nie w pliku <code>functions.php<\/code> motywu.<\/strong> Typ zarejestrowany w motywie znika z panelu przy ka\u017cdej zmianie motywu, a dane zostaj\u0105 w bazie bez mo\u017cliwo\u015bci edycji. To jeden z najcz\u0119stszych problem\u00f3w, z jakimi trafiaj\u0105 do nas przejmowane serwisy. Gdy jeste\u015b na tym poziomie, skala staje si\u0119 prawdziwym pytaniem \u2014 sprawd\u017a <a href=\"https:\/\/wlc.team\/pl\/blog\/ile-podstron-moze-miec-serwis-na-wordpressie\/\" target=\"_blank\" rel=\"noopener\">ile podstron mo\u017ce mie\u0107 serwis na WordPressie<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. W\u0142asna wtyczka<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Najwy\u017cszy poziom z\u0142o\u017cono\u015bci: w\u0142asne tabele w bazie, integracje z systemami zewn\u0119trznymi, wieloetapowe procesy, logika biznesowa. Portal cz\u0142onkowski, konfigurator produktu, wieloetapowy wniosek.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tu ju\u017c nie m\u00f3wimy o podstronie, tylko o aplikacji osadzonej w WordPressie. Warto to nazwa\u0107 wprost na etapie planowania, bo wycena, harmonogram i wymagania utrzymaniowe wygl\u0105daj\u0105 zupe\u0142nie inaczej ni\u017c przy pozosta\u0142ych czterech poziomach.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Jak wybra\u0107 w\u0142a\u015bciwy poziom<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zadaj trzy pytania w tej kolejno\u015bci.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Czy chodzi o wygl\u0105d, czy o funkcj\u0119?<\/strong> Sam wygl\u0105d za\u0142atwiaj\u0105 poziomy 1 i 2. Dopiero funkcja wymaga kodu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Czy to jedna podstrona, czy powtarzalny wzorzec?<\/strong> Jedna podstrona to szablon. Powtarzalny zbi\u00f3r danych to typ tre\u015bci.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kto b\u0119dzie to zmienia\u0142 i jak cz\u0119sto?<\/strong> To pytanie decyduje najcz\u0119\u015bciej, a zadaje si\u0119 je najrzadziej. Je\u015bli tre\u015b\u0107 ma zmienia\u0107 marketing co dwa tygodnie, rozwi\u0105zanie musi by\u0107 edytowalne bez programisty. Zej\u015bcie na poziom 3 przy stronie kampanii oznacza, \u017ce ka\u017cda korekta nag\u0142\u00f3wka wymaga wdro\u017cenia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zej\u015bcie o poziom ni\u017cej ni\u017c to konieczne nie jest neutralne. Zwi\u0119ksza zale\u017cno\u015b\u0107 od zespo\u0142u technicznego, wyd\u0142u\u017ca czas wprowadzania zmian i podnosi koszt utrzymania na ca\u0142e \u017cycie serwisu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Czego wymaga poziom wymagaj\u0105cy kodu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u015bli projekt schodzi na poziom 3 lub ni\u017cej, potrzebne s\u0105 konkretne kompetencje.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>PHP<\/strong> jest podstaw\u0105, bo na nim zbudowany jest WordPress. Poza samym j\u0119zykiem liczy si\u0119 znajomo\u015b\u0107 funkcji i punkt\u00f3w rozszerze\u0144 specyficznych dla platformy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>HTML i CSS<\/strong> s\u0105 niezb\u0119dne do struktury i stylowania. <strong>JavaScript<\/strong> wchodzi w gr\u0119 przy elementach interaktywnych i przy pracy z REST API WordPressa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wiedza specyficzna dla platformy obejmuje:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>p\u0119tl\u0119 WordPressa i funkcje zapyta\u0144<\/li>\n\n\n\n<li>akcje i filtry<\/li>\n\n\n\n<li>pola dodatkowe i metadane<\/li>\n\n\n\n<li>zasady bezpiecze\u0144stwa: nonce, walidacja i oczyszczanie danych wej\u015bciowych<\/li>\n\n\n\n<li>struktur\u0119 bazy danych i w\u0142asne zapytania<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Dobre praktyki<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Bezpiecze\u0144stwo jest priorytetem.<\/strong> Dane wej\u015bciowe wymagaj\u0105 oczyszczenia i walidacji, formularze wymagaj\u0105 token\u00f3w nonce. \u017badne dane od u\u017cytkownika nie mog\u0105 trafi\u0107 do bazy ani na wyj\u015bcie bez weryfikacji.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Organizacja kodu decyduje o kosztach utrzymania.<\/strong> Modyfikacje umieszczaj w motywie potomnym lub w\u0142asnej wtyczce, nie w plikach motywu nadrz\u0119dnego. Nazwy funkcji i zmiennych powinny by\u0107 czytelne, a kod skomentowany na tyle, \u017ceby kolejna osoba nie musia\u0142a go odtwarza\u0107.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wydajno\u015b\u0107<\/strong> to ograniczanie liczby zapyta\u0144 do bazy i \u0142adowanie skrypt\u00f3w tylko tam, gdzie s\u0105 potrzebne. Zasoby wczytywane na ka\u017cdej podstronie serwisu, cho\u0107 u\u017cywane na jednej, to jeden z najcz\u0119stszych powod\u00f3w s\u0142abych wynik\u00f3w Core Web Vitals.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Standardy kodowania WordPressa<\/strong> u\u0142atwiaj\u0105 utrzymanie i przekazanie projektu. Kontrola wersji w Git jest warunkiem, nie opcj\u0105.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Diagnostyka typowych problem\u00f3w<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Konflikty szablon\u00f3w pojawiaj\u0105 si\u0119, gdy kilka wtyczek albo motyw pr\u00f3buj\u0105 kontrolowa\u0107 te same elementy. Metod\u0105 jest wy\u0142\u0105czanie wtyczek pojedynczo i sprawdzenie, czy w\u0142a\u015bciwy szablon jest w og\u00f3le \u0142adowany.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tryb diagnostyczny<\/strong> ujawnia b\u0142\u0119dy i ostrze\u017cenia PHP. W\u0142\u0105cza si\u0119 go przez <code>WP_DEBUG<\/code> w pliku <code>wp-config.php<\/code>, na \u015brodowisku testowym, nigdy na produkcji.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Problemy ze stylami wynikaj\u0105 zwykle z konflikt\u00f3w mi\u0119dzy w\u0142asnym CSS a stylami motywu. Narz\u0119dzia deweloperskie w przegl\u0105darce pokazuj\u0105, kt\u00f3re regu\u0142y s\u0105 stosowane. Rozwi\u0105zaniem jest bardziej precyzyjny selektor albo uporz\u0105dkowanie kolejno\u015bci \u0142adowania arkuszy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deklaracji <code>!important<\/code> warto unika\u0107. Bywa szybkim obej\u015bciem, ale ka\u017cde jej u\u017cycie utrudnia kolejne zmiany i po kilkunastu wyst\u0105pieniach arkusz staje si\u0119 nieprzewidywalny. Je\u015bli <code>!important<\/code> wydaje si\u0119 jedynym wyj\u015bciem, problem le\u017cy zwykle w strukturze styl\u00f3w, a nie w konkretnej regule.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cz\u0119ste b\u0142\u0119dy funkcjonalne:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>niew\u0142a\u015bciwy punkt rozszerzenia albo niew\u0142a\u015bciwy moment jego wywo\u0142ania<\/li>\n\n\n\n<li>brak token\u00f3w nonce w formularzach<\/li>\n\n\n\n<li>b\u0142\u0119dy w zapytaniach do bazy<\/li>\n\n\n\n<li>konflikty skrypt\u00f3w JavaScript<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Zmiany testuj w \u015brodowisku testowym przed wdro\u017ceniem na produkcj\u0119. To ogranicza ryzyko zepsucia dzia\u0142aj\u0105cych funkcji.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wyb\u00f3r poziomu jest wa\u017cniejszy ni\u017c jako\u015b\u0107 wykonania na wybranym poziomie. Dobrze napisany szablon PHP tam, gdzie wystarczy\u0142by wzorzec blok\u00f3w, i tak generuje niepotrzebn\u0105 zale\u017cno\u015b\u0107 od zespo\u0142u technicznego przez ca\u0142y okres \u017cycia serwisu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zaczynaj od g\u00f3ry listy i schod\u017a ni\u017cej tylko wtedy, gdy poziom wy\u017cej naprawd\u0119 nie wystarcza. Przy wi\u0119kszych projektach ta decyzja zapada raz i rzutuje na wszystko, co przyjdzie p\u00f3\u017aniej.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zewn\u0119trzny zesp\u00f3\u0142 ma sens tam, gdzie projekt schodzi na poziom 4 lub 5: w\u0142asny model danych, integracje z systemami zewn\u0119trznymi, wymagania wydajno\u015bciowe albo skala, przy kt\u00f3rej b\u0142\u0105d architektoniczny kosztuje wi\u0119cej ni\u017c samo wdro\u017cenie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Najcz\u0119stsze pytania: w\u0142asna podstrona WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Czy w\u0142asna podstrona w WordPressie wymaga programisty? <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nie zawsze. Uk\u0142ad odbiegaj\u0105cy od reszty serwisu zwykle da si\u0119 zbudowa\u0107 w edytorze blok\u00f3w i wzorcach. Kod jest potrzebny dopiero przy w\u0142asnej funkcjonalno\u015bci.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Kiedy potrzebny jest w\u0142asny typ tre\u015bci zamiast zwyk\u0142ej podstrony? <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Gdy chodzi o powtarzalny zbi\u00f3r danych, na przyk\u0142ad katalog, baz\u0119 wiedzy czy list\u0119 lokalizacji, a nie o pojedyncz\u0105 podstron\u0119.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Gdzie rejestrowa\u0107 w\u0142asne typy tre\u015bci? <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We w\u0142asnej wtyczce, nie w pliku <code>functions.php<\/code> motywu. Typ zarejestrowany w motywie znika z panelu przy zmianie motywu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Czy <code>page-{ID}.php<\/code> to dobra nazwa szablonu? <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nie. Identyfikatory podstron r\u00f3\u017cni\u0105 si\u0119 mi\u0119dzy \u015brodowiskami i rozje\u017cd\u017caj\u0105 si\u0119 przy migracji. Bezpieczniejszy jest slug albo szablon z nag\u0142\u00f3wkiem <code>Template Name<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pytanie o w\u0142asn\u0105 podstron\u0119 ma dzi\u015b pi\u0119\u0107 r\u00f3\u017cnych odpowiedzi i wyb\u00f3r mi\u0119dzy nimi decyduje o kosztach utrzymania na lata. Najprostsza to uk\u0142ad z\u0142o\u017cony w edytorze blok\u00f3w z gotowego wzorca. Najbardziej rozbudowana to w\u0142asna wtyczka z odr\u0119bnym modelem danych. Mi\u0119dzy nimi mieszcz\u0105 si\u0119 szablony podstron, w\u0142asne typy tre\u015bci i pola dodatkowe. Zasada jest prosta: schod\u017a ni\u017cej [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":2848,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"wlc_update_modified":false,"wlc_modified_date":"","footnotes":""},"categories":[10],"tags":[],"class_list":["post-2849","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bez-kategorii"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Jak zbudowa\u0107 w\u0142asn\u0105 podstron\u0119 w WordPressie? - WLC<\/title>\n<meta name=\"description\" content=\"Nie ka\u017cda nietypowa podstrona wymaga kodu. Sprawd\u017a pi\u0119\u0107 poziom\u00f3w rozwi\u0105za\u0144, od wzorca blok\u00f3w po w\u0142asn\u0105 wtyczk\u0119, i kiedy kt\u00f3ry z nich si\u0119 op\u0142aca.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jak zbudowa\u0107 w\u0142asn\u0105 podstron\u0119 w WordPressie? - WLC\" \/>\n<meta property=\"og:description\" content=\"Nie ka\u017cda nietypowa podstrona wymaga kodu. Sprawd\u017a pi\u0119\u0107 poziom\u00f3w rozwi\u0105za\u0144, od wzorca blok\u00f3w po w\u0142asn\u0105 wtyczk\u0119, i kiedy kt\u00f3ry z nich si\u0119 op\u0142aca.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/\" \/>\n<meta property=\"og:site_name\" content=\"WLC\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-27T16:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wlc.team\/app\/uploads\/2025\/06\/How-do-I-create-a-custom-page-in-WordPress.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"520\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Pawe\u0142 Zmys\u0142owski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pawe\u0142 Zmys\u0142owski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/\"},\"author\":{\"name\":\"Pawe\u0142 Zmys\u0142owski\",\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/#\\\/schema\\\/person\\\/c2bcfdeef992bd8742ca5b346bc40dcc\"},\"headline\":\"Jak zbudowa\u0107 w\u0142asn\u0105 podstron\u0119 w WordPressie?\",\"datePublished\":\"2025-06-27T16:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/\"},\"wordCount\":1419,\"publisher\":{\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wlc.team\\\/app\\\/uploads\\\/2025\\\/06\\\/How-do-I-create-a-custom-page-in-WordPress.png\",\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/\",\"url\":\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/\",\"name\":\"Jak zbudowa\u0107 w\u0142asn\u0105 podstron\u0119 w WordPressie? - WLC\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wlc.team\\\/app\\\/uploads\\\/2025\\\/06\\\/How-do-I-create-a-custom-page-in-WordPress.png\",\"datePublished\":\"2025-06-27T16:00:00+00:00\",\"description\":\"Nie ka\u017cda nietypowa podstrona wymaga kodu. Sprawd\u017a pi\u0119\u0107 poziom\u00f3w rozwi\u0105za\u0144, od wzorca blok\u00f3w po w\u0142asn\u0105 wtyczk\u0119, i kiedy kt\u00f3ry z nich si\u0119 op\u0142aca.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/#primaryimage\",\"url\":\"https:\\\/\\\/wlc.team\\\/app\\\/uploads\\\/2025\\\/06\\\/How-do-I-create-a-custom-page-in-WordPress.png\",\"contentUrl\":\"https:\\\/\\\/wlc.team\\\/app\\\/uploads\\\/2025\\\/06\\\/How-do-I-create-a-custom-page-in-WordPress.png\",\"width\":1280,\"height\":520,\"caption\":\"How do I create a custom page in WordPress\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/blog\\\/jak-zbudowac-wlasna-podstrone-w-wordpressie\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wlc.team\\\/pl\\\/agencja-wordpress-development-wlc\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jak zbudowa\u0107 w\u0142asn\u0105 podstron\u0119 w WordPressie?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/#website\",\"url\":\"https:\\\/\\\/wlc.team\\\/pl\\\/\",\"name\":\"WLC\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wlc.team\\\/pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/#organization\",\"name\":\"WLC\",\"url\":\"https:\\\/\\\/wlc.team\\\/pl\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/wlc.team\\\/app\\\/uploads\\\/2026\\\/05\\\/logo-WLC.svg\",\"contentUrl\":\"https:\\\/\\\/wlc.team\\\/app\\\/uploads\\\/2026\\\/05\\\/logo-WLC.svg\",\"caption\":\"WLC\"},\"image\":{\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/wlc.team\\\/pl\\\/#\\\/schema\\\/person\\\/c2bcfdeef992bd8742ca5b346bc40dcc\",\"name\":\"Pawe\u0142 Zmys\u0142owski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6ee44112f45966811b27bcb16cea8224ce2e414b42387f5bd64f10cd729b310c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6ee44112f45966811b27bcb16cea8224ce2e414b42387f5bd64f10cd729b310c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6ee44112f45966811b27bcb16cea8224ce2e414b42387f5bd64f10cd729b310c?s=96&d=mm&r=g\",\"caption\":\"Pawe\u0142 Zmys\u0142owski\"},\"description\":\"Started his career as a founder of a local ISP company during his student times, next became a founder and president of one of the leading Polish online photo laboratories delivering photo prints, highly recognized in the professional photographers community due to the focus on the highest quality of services and customer care. At White Label Coders responsible for the sales process and sales team, still involved in the analytical and advisory roles in case of more complex projects.\",\"url\":\"https:\\\/\\\/wlc.team\\\/pl\\\/author\\\/pawel-zmyslowski\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Jak zbudowa\u0107 w\u0142asn\u0105 podstron\u0119 w WordPressie? - WLC","description":"Nie ka\u017cda nietypowa podstrona wymaga kodu. Sprawd\u017a pi\u0119\u0107 poziom\u00f3w rozwi\u0105za\u0144, od wzorca blok\u00f3w po w\u0142asn\u0105 wtyczk\u0119, i kiedy kt\u00f3ry z nich si\u0119 op\u0142aca.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/","og_locale":"pl_PL","og_type":"article","og_title":"Jak zbudowa\u0107 w\u0142asn\u0105 podstron\u0119 w WordPressie? - WLC","og_description":"Nie ka\u017cda nietypowa podstrona wymaga kodu. Sprawd\u017a pi\u0119\u0107 poziom\u00f3w rozwi\u0105za\u0144, od wzorca blok\u00f3w po w\u0142asn\u0105 wtyczk\u0119, i kiedy kt\u00f3ry z nich si\u0119 op\u0142aca.","og_url":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/","og_site_name":"WLC","article_published_time":"2025-06-27T16:00:00+00:00","og_image":[{"width":1280,"height":520,"url":"https:\/\/wlc.team\/app\/uploads\/2025\/06\/How-do-I-create-a-custom-page-in-WordPress.png","type":"image\/png"}],"author":"Pawe\u0142 Zmys\u0142owski","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Pawe\u0142 Zmys\u0142owski","Est. reading time":"6 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/#article","isPartOf":{"@id":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/"},"author":{"name":"Pawe\u0142 Zmys\u0142owski","@id":"https:\/\/wlc.team\/pl\/#\/schema\/person\/c2bcfdeef992bd8742ca5b346bc40dcc"},"headline":"Jak zbudowa\u0107 w\u0142asn\u0105 podstron\u0119 w WordPressie?","datePublished":"2025-06-27T16:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/"},"wordCount":1419,"publisher":{"@id":"https:\/\/wlc.team\/pl\/#organization"},"image":{"@id":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/#primaryimage"},"thumbnailUrl":"https:\/\/wlc.team\/app\/uploads\/2025\/06\/How-do-I-create-a-custom-page-in-WordPress.png","inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/","url":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/","name":"Jak zbudowa\u0107 w\u0142asn\u0105 podstron\u0119 w WordPressie? - WLC","isPartOf":{"@id":"https:\/\/wlc.team\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/#primaryimage"},"image":{"@id":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/#primaryimage"},"thumbnailUrl":"https:\/\/wlc.team\/app\/uploads\/2025\/06\/How-do-I-create-a-custom-page-in-WordPress.png","datePublished":"2025-06-27T16:00:00+00:00","description":"Nie ka\u017cda nietypowa podstrona wymaga kodu. Sprawd\u017a pi\u0119\u0107 poziom\u00f3w rozwi\u0105za\u0144, od wzorca blok\u00f3w po w\u0142asn\u0105 wtyczk\u0119, i kiedy kt\u00f3ry z nich si\u0119 op\u0142aca.","breadcrumb":{"@id":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/#primaryimage","url":"https:\/\/wlc.team\/app\/uploads\/2025\/06\/How-do-I-create-a-custom-page-in-WordPress.png","contentUrl":"https:\/\/wlc.team\/app\/uploads\/2025\/06\/How-do-I-create-a-custom-page-in-WordPress.png","width":1280,"height":520,"caption":"How do I create a custom page in WordPress"},{"@type":"BreadcrumbList","@id":"https:\/\/wlc.team\/pl\/blog\/jak-zbudowac-wlasna-podstrone-w-wordpressie\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wlc.team\/pl\/agencja-wordpress-development-wlc\/"},{"@type":"ListItem","position":2,"name":"Jak zbudowa\u0107 w\u0142asn\u0105 podstron\u0119 w WordPressie?"}]},{"@type":"WebSite","@id":"https:\/\/wlc.team\/pl\/#website","url":"https:\/\/wlc.team\/pl\/","name":"WLC","description":"","publisher":{"@id":"https:\/\/wlc.team\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wlc.team\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/wlc.team\/pl\/#organization","name":"WLC","url":"https:\/\/wlc.team\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/wlc.team\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/wlc.team\/app\/uploads\/2026\/05\/logo-WLC.svg","contentUrl":"https:\/\/wlc.team\/app\/uploads\/2026\/05\/logo-WLC.svg","caption":"WLC"},"image":{"@id":"https:\/\/wlc.team\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/wlc.team\/pl\/#\/schema\/person\/c2bcfdeef992bd8742ca5b346bc40dcc","name":"Pawe\u0142 Zmys\u0142owski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/secure.gravatar.com\/avatar\/6ee44112f45966811b27bcb16cea8224ce2e414b42387f5bd64f10cd729b310c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6ee44112f45966811b27bcb16cea8224ce2e414b42387f5bd64f10cd729b310c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6ee44112f45966811b27bcb16cea8224ce2e414b42387f5bd64f10cd729b310c?s=96&d=mm&r=g","caption":"Pawe\u0142 Zmys\u0142owski"},"description":"Started his career as a founder of a local ISP company during his student times, next became a founder and president of one of the leading Polish online photo laboratories delivering photo prints, highly recognized in the professional photographers community due to the focus on the highest quality of services and customer care. At White Label Coders responsible for the sales process and sales team, still involved in the analytical and advisory roles in case of more complex projects.","url":"https:\/\/wlc.team\/pl\/author\/pawel-zmyslowski\/"}]}},"_links":{"self":[{"href":"https:\/\/wlc.team\/pl\/wp-json\/wp\/v2\/posts\/2849","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wlc.team\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wlc.team\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wlc.team\/pl\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/wlc.team\/pl\/wp-json\/wp\/v2\/comments?post=2849"}],"version-history":[{"count":4,"href":"https:\/\/wlc.team\/pl\/wp-json\/wp\/v2\/posts\/2849\/revisions"}],"predecessor-version":[{"id":2851,"href":"https:\/\/wlc.team\/pl\/wp-json\/wp\/v2\/posts\/2849\/revisions\/2851"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wlc.team\/pl\/wp-json\/wp\/v2\/media\/2848"}],"wp:attachment":[{"href":"https:\/\/wlc.team\/pl\/wp-json\/wp\/v2\/media?parent=2849"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wlc.team\/pl\/wp-json\/wp\/v2\/categories?post=2849"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wlc.team\/pl\/wp-json\/wp\/v2\/tags?post=2849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}