WordPress od lat kojarzy się przede wszystkim z blogowaniem – i słusznie, bo to system, który swoją popularność zawdzięcza prostocie publikowania treści. Ale to, co widzisz domyślnie w panelu administracyjnym, to dopiero wierzchołek góry lodowej.
Jak wyjść poza standardowe wpisy i strony w WordPressie
Domyślnie WordPress oferuje dwa główne typy treści: Wpisy (Posts) przeznaczone na bloga oraz Strony (Pages) służące do publikowania statycznych zakładek, takich jak „O nas” czy „Kontakt”. Dla bloga czy prostej strony firmowej to w zupełności wystarczy.
Problem pojawia się, gdy rozbudowujesz serwis i chcesz pokazać portfolio realizacji, katalog produktów, zespół pracowników, opinie klientów, oferty pracy czy wydarzenia. Wciskanie tego wszystkiego w zwykłe „wpisy” szybko kończy się bałaganem – w menu, w panelu i w głowie. Traci się porządek, a filtrowanie i zarządzanie takimi treściami staje się coraz trudniejsze.
Właśnie wtedy z pomocą przychodzą Custom Post Types (CPT) – własne typy treści.
Czym są Custom Post Types?
Custom Post Type to nowy rodzaj treści, który WordPress traktuje osobno, ze swoim:
- menu w panelu administracyjnym,
- listą wszystkich pozycji,
- ekranem edycji,
- adresem URL (np.
/realizacje/nazwa-projektu/), - możliwością dodania własnych pól, taksonomii i szablonów.
Technicznie CPT to spersonalizowany typ struktury danych w bazie WordPressa. Zarówno standardowy wpis, strona, jak i załącznik medialny są wpisami w tabeli wp_posts, różniącymi się jedynie wartością w kolumnie post_type. CPT po prostu dodaje kolejną flagę tego typu. Dzięki temu w jednym systemie możesz mieć blog, strony statyczne, realizacje, zespół i produkty – a wszystko jest czytelnie posortowane.
Ważne: sam CPT to tylko pusty „pojemnik” na treść – nowy typ wpisu z tytułem i podstawowym edytorem. Dopiero dołożenie własnych pól (najczęściej przez wtyczkę Advanced Custom Fields, ACF) pozwala wypełnić ten pojemnik konkretną, ustrukturyzowaną zawartością.
Przykład z życia: zakładasz CPT „Realizacje” dla firmy remontowej. Bez dodatkowych pól masz tylko tytuł i jedno duże pole tekstowe. Z odpowiednio skonfigurowanymi polami dokładasz do tego typu treści: lokalizację, zakres prac, czas trwania, budżet, zdjęcia przed i po, opinię klienta. Każda realizacja jest teraz wprowadzana w ten sam, przewidywalny sposób – i nie trzeba za każdym razem zastanawiać się, co i gdzie wpisać.
To połączenie – CPT jako struktura, dodatkowe pola jako zawartość tej struktury – to fundament większości nietypowych, ale profesjonalnie zrobionych stron WordPress, jakie widzisz w internecie.
Kiedy warto stworzyć własny typ treści?
CPT sprawdza się wszędzie tam, gdzie treść ma powtarzalną strukturę:
- Portfolio / realizacje – klient, data, technologia, zdjęcia przed/po.
- Oferta / usługi – cena, czas realizacji, ikona.
- Zespół – stanowisko, bio, social media, kolejność wyświetlania.
- Opinie / testimonials – imię, firma, ocena, zdjęcie klienta.
- Wydarzenia – data, miejsce, bilet, mapa.
- Oferty pracy – widełki płacowe, lokalizacja, typ umowy, termin aplikacji.
- Baza wiedzy / FAQ – kategoria problemu, poziom trudności, powiązane produkty.
- Nieruchomości, przepisy, kursy, case studies – cokolwiek, co nie pasuje do zwykłego wpisu ani strony.
Jeśli zauważasz, że w swoich wpisach lub stronach co jakiś czas powtarzasz tę samą strukturę treści – te same rodzaje informacji, tylko z innymi danymi – to dobry sygnał, że warto rozdzielić to na osobny CPT. Utrzymywanie takich treści w standardowych wpisach na dłuższą metę utrudnia zarządzanie stroną i jej dalszy rozwój.
Dlaczego warto używać własnych typów treści?
- Porządek w panelu administracyjnym – oddzielasz wpisy blogowe od oferty czy realizacji. Edycja strony staje się intuicyjna, nawet dla osób bez wiedzy technicznej.
- Dedykowane pola i taksonomie – łącząc CPT z ACF oraz własną taksonomią (np. „Rodzaj usługi” czy „Branża”), tworzysz elastyczny system zarządzania treścią, niezależny od standardowych kategorii bloga.
- Łatwiejsze zarządzanie szablonami – możesz stworzyć dedykowane pliki motywu (np.
single-realizacje.phpczyarchive-realizacje.php), co daje pełną kontrolę nad wyglądem pojedynczych elementów i ich archiwów. - Lepsze doświadczenie użytkownika – odwiedzający łatwiej znajdą to, czego szukają, gdy treści są logicznie pogrupowane.
- SEO – dobrze skonfigurowany CPT porządkuje treść tematycznie i pozwala tworzyć czytelne, ustrukturyzowane adresy URL oraz dedykowane archiwa.
Jak stworzyć Custom Post Type?
Do dyspozycji masz dwa sposoby: użycie wtyczki (szybkie, nie wymaga kodowania) lub rejestrację CPT za pomocą kodu w pliku motywu / własnej wtyczce (zalecane dla wydajności).
Metoda 1: Wtyczka (szybko, bez kodowania)
Najprostsze i najpopularniejsze rozwiązanie, szczególnie dla osób bez doświadczenia technicznego:
- Custom Post Type UI (CPT UI) – darmowa, lekka, stworzona dokładnie do tego celu.
- Advanced Custom Fields (ACF) – od wersji 6.1 pozwala rejestrować typy treści i od razu dodawać do nich własne pola.
Krok po kroku z CPT UI:
- Zainstaluj i aktywuj wtyczkę Custom Post Type UI (Wtyczki > Dodaj nową).
- Przejdź do CPT UI > Add/Edit Post Types.
- Wypełnij pola:
- Post Type Slug – nazwa w bazie danych, np.
realizacje(małe litery, bez polskich znaków i spacji). - Plural Label – etykieta w liczbie mnogiej, np. „Realizacje”.
- Singular Label – etykieta w liczbie pojedynczej, np. „Realizacja”.
- Post Type Slug – nazwa w bazie danych, np.
- Kliknij „Populate additional labels based on chosen labels” – wtyczka sama uzupełni resztę etykiet.
- W sekcji Settings ustaw najważniejsze opcje:
- Public = true,
- Has Archive = true (żeby powstała strona
/realizacje/), - Show in REST API = true (działa z edytorem blokowym/Gutenbergiem),
- Supports – title, editor, thumbnail, excerpt (w zależności od tego, co ma być dostępne w edytorze).
- Zapisz. W menu panelu pojawi się nowa pozycja „Realizacje” – możesz od razu dodawać treść.
Inne wtyczki, które robią to samo w podobny sposób: Easy Post Types and Fields (kreator krok po kroku, z obsługą pól i taksonomii), Simple CPT (bardzo lekka), SuperLight CPT Manager (minimalistyczna, każdy CPT dostaje automatyczny shortcode).
Metoda 2: Kod w PHP (dla deweloperów, lepsza wydajność)
Dla większej kontroli i niezależności od zewnętrznych wtyczek CPT rejestruje się funkcją register_post_type(). Kod najlepiej umieścić we własnej, lekkiej wtyczce funkcjonalnej – nie w functions.php motywu, bo przy zmianie motywu CPT (i dostęp do treści) by zniknął.
CPT + ACF w praktyce
Sam Custom Post Type można stworzyć ręcznie w kodzie albo przez wtyczkę z interfejsem graficznym – ACF PRO ma zresztą wbudowany kreator CPT, więc nie trzeba nawet sięgać po dodatkowe narzędzia.
Po stworzeniu typu treści przypisujesz do niego grupę pól, ustawiając regułę „pokaż te pola, jeśli typ treści to Realizacje”. Od tego momentu przy dodawaniu nowej realizacji w panelu automatycznie pojawiają się wszystkie zdefiniowane pola.
Wyświetlenie tych danych na froncie w konkretnym układzie wymaga już edycji szablonu i podstawowej znajomości PHP – chyba że korzystasz z buildera obsługującego CPT i pola dodatkowe.
Przykłady zastosowań duetu CPT + ACF
- Portfolio i realizacje – CPT „Projekty” z polami na klienta, branżę, zakres prac i galerię zdjęć.
- Zespół i pracownicy – CPT „Zespół” z polami na stanowisko, zdjęcie, opis, linki do social mediów.
- Oferty pracy – CPT „Kariera” z polami na widełki płacowe, lokalizację, typ umowy, termin aplikacji.
- Baza wiedzy / FAQ – CPT „Artykuły pomocy” z polami na kategorię problemu, poziom trudności, powiązane produkty.
- Recenzje i opinie – CPT „Opinie” z polami na ocenę w gwiazdkach, zdjęcie klienta, datę realizacji usługi.
- Wydarzenia – CPT „Wydarzenia” z polami na datę, miejsce, cenę biletu, listę prelegentów.
Wspólna cecha wszystkich tych przykładów: to treść o jasno określonej, powtarzalnej strukturze, logicznie różniąca się od zwykłych wpisów blogowych.
Custom Post Types a taksonomie
Warto wspomnieć jeszcze o jednym elemencie, który często idzie w parze z CPT – własnych taksonomiach, czyli odpowiedniku kategorii i tagów, ale dla nowego typu treści. Przy CPT „Realizacje” możesz stworzyć taksonomię „Rodzaj usługi” (remonty, wykończenia, instalacje) i dzięki temu filtrować oraz porządkować realizacje niezależnie od standardowych kategorii bloga. To kolejny element, który sprawia, że dany typ treści zachowuje się jak osobny, przemyślany system, a nie prowizorka dorobiona do bloga.
Dobre praktyki
- Rejestruj CPT we własnej wtyczce, nie w motywie – treść i jej struktura nie znikną przy zmianie wyglądu strony.
- Zawsze ustawiaj
show_in_rest => true, jeśli chcesz korzystać z edytora blokowego. - Po rejestracji CPT zapisz permalinki (patrz niżej – to częsty powód błędu 404).
- Nie twórz CPT „na zapas” – każdy nowy typ to dodatkowe menu i potencjalny bałagan.
- Prefiksuj slug, jeśli budujesz coś uniwersalnego (np.
sw_realizacje), żeby uniknąć konfliktów z innymi wtyczkami.
Częsty błąd: 404 po utworzeniu CPT
Po zarejestrowaniu nowego Custom Post Type i próbie otwarcia jego podglądu na stronie możesz napotkać błąd 404 (Not Found). Wynika to z tego, że WordPress nie zaktualizował jeszcze reguł przepisywania adresów URL (permalinków).
Rozwiązanie: przejdź w panelu do Ustawienia > Bezpośrednie odnośniki i kliknij Zapisz zmiany – nie musisz niczego zmieniać w formularzu, sam zapis odświeży strukturę adresów URL.
Najczęstsze pytania o Custom Post Types
Samo utworzenie typu treści da się zrobić przez interfejs graficzny bez pisania kodu, ale wyświetlenie go w konkretnym układzie na stronie zwykle wymaga edycji szablonu.
Sam typ treści i wprowadzone dane pozostają w bazie danych niezależnie od motywu, ale sposób ich wyświetlania trzeba zwykle dostosować do nowego szablonu.
Nie ma sztywnego limitu – w praktyce liczba CPT powinna wynikać z realnych potrzeb strony, a nie z samej możliwości ich tworzenia.
Dobrze skonfigurowany CPT może wręcz pomóc w SEO, bo porządkuje treść tematycznie i pozwala tworzyć czytelne, ustrukturyzowane adresy URL oraz dedykowane archiwa.
Podsumowanie
Custom Post Types to jeden z najmocniejszych sposobów, żeby wyjść poza standardowy blog i stronę i zbudować prawdziwy, dopasowany do biznesu system zarządzania treścią. Nie trzeba od razu pisać kodu – wtyczki typu CPT UI + ACF załatwiają większość przypadków w kilka minut.
Jeśli budujesz stronę firmową z portfolio, ofertą i zespołem, dobrze zaprojektowane CPT + własne pola to różnica między „stroną, którą da się aktualizować” a „stroną, której nikt nie chce ruszać”.
Potrzebujesz pomocy przy wdrożeniu Custom Post Types, ACF albo całego systemu treści na WordPressie? Napisz – zajmiemy się tym za Ciebie.