W WordPress najczęściej używanym CPT jest segment "portfolio". Oprócz znanych wszystkim typowych rodzajów postów takich jak "strona główna" i "wpis", możesz tworzyć ich nowe warianty, dostosowując je do Twoich potrzeb. O co chodzi z CPT? Jak je zrobić? Co czyni je wyjątkowymi i jakie mogą być przykłady ich zastosowania? Wszystkiego co najważniejsze zostało opisane w tym tekście!
Co to jest WordPress custom post type (CPT)?
Myślisz o rozbudowie własnej witryny? Chcesz zapewnić swoim użytkownikom prosty dostęp do najnowszych informacji o Twojej firmie lub Twojego prywatnego bloga? Potrzebujesz więc czegoś więcej niż tylko "strony" i "postów na niej". Prosty przykład: chcesz wyświetlić przepisy na swojej stronie internetowej, stworzyć słowniczek w którym wyjaśnisz fachowe terminy, udostępnić pliki do pobrania, automatycznie wyświetlić profile pracowników lub organizować seminaria - to wszystko obok standardowych postów na blogu lub aktualnych wiadomości. Sama prezentacja produktu w sklepie online to również przykład zastosowania custom post type. Wyróżniamy dwa rodzaje własnych typów wpisów (CPT):
- Custom Post Types uporządkowane w kolejności hierarchicznej
- Custom Post Types w kolejności chronologicznej
Teraz przyjrzymy się dokładniej obu wariantom.

Custom Post Types uporządkowane w kolejności hierarchicznej
Ten wariant CPT w praktyce funkcjonuje identycznie jak "strony" (ang. pages). Podobnie jak one, wszystkie wpisy w panelu sterowania są posortowane alfabetycznie. Dodatkowo, do głównych wpisów można dodawać podpunkty. Tworzą się wtedy podstrony, a ich strony nadrzędne nazywane są odpowiednio "rodzicami" (od angielskiego słowa 'parents').
Ten rodzaj niestandardowych typów postów nadaje się na przykład do przygotowania słowniczka trudnych pojęć na wzór własnej wikipedii, listy sklepów, zaprezentowania kolekcji gitar, stworzenia listy pracowników - do czego tylko zapragniesz.
Custom Post Types w kolejności chronologicznej
Jak pewnie już udało Ci się odgadnąć: w praktyce można je porównać do standardowych wpisów. Publikacje są przechowywane i sortowane w kolejności chronologicznej, tak aby najnowsze z nich zawsze pojawiały się jako pierwsze - tak jak na blogu.
Klasyczne przykłady użycia chronologicznego ułożenia custom post types to przepisy kulinarne, portfolio lub wydarzenia (np. seminaria online). W takim przypadku kluczowe jest zadbanie o Custom Taxonomies (nazwa pochodzi od słowa "taksonomia" - jest bliskoznaczny z terminem „systematyka”)
Custom Taxonomies
Standardowo taksonomiami w kontekście WordPress są zakładki "kategorie" i "słowa kluczowe". Pomagają one w dalszej kategoryzacji zawartości danej strony i umożliwiają jej przeszukiwanie. Takie taksonomie dla niestandardowych typów postów. Na przykład taksonomia "Składniki" w odniesieniu do przepisów, "wokalista/zespół" w kontekście utworów muzycznych lub "wydawca", kiedy mówimy o książkach.
W ten sposób powstają automatycznie generowane strony archiwalne, na których można wyświetlać na przykład wyłącznie książki od konkretnego wydawcy lub tylko te przepisy, w których można użyć kiełków rzodkiewek.

W jaki sposób mogę stworzyć własny Custom Post Type?
Istnieje wiele różnych sposobów na stworzenie własnych typów wpisów, a co za tym idzie, wiele różnych podejść do ich tworzenia:
- Wtyczka WordPress, która oferuje gotowe Custom Post Types
- Szablon WordPress, który zawiera Custom Post Type
- Wtyczka, za pomocą której można stworzyć własne typy wpisów (CPT)
- Jeśli potrafisz, możesz samodzielnie stworzyć wtyczkę z autorskim Custom Post Type
- Projektując szablon tworzysz w nim własny CPT
Jakie są różnicę między każdym z tych rozwiązań? Już tłumaczę:
Wtyczka Custom Post Type
Flagowcami w tym przypadku są wtyczki umożliwiające organizację wydarzenia, eventu-online lub prowadzenia kalendarza spotkań. Zaprogramowanie tego typu elementu nie jest najłatwiejszym zadaniem. Musi on wyświetlać eventy, które mają miejsce w przyszłości, a także tworzyć różne kompozycje ich wyświetlania. Ponadto, posiadają one wiele dodatkowych opcji i zmiennych, takich jak wyświetlanie organizatora, lokalizacji, czasu, mapy itp.
Możesz chcieć wyświetlać różne widoki, np. listę miesięczną lub rzeczywisty kalendarz. Szybko staje się to tak skomplikowane, że nie chce się tego programować samemu, bo zajmuje to zbyt wiele czasu (wierz mi, próbowałem). W ten sam sposób istnieją tysiące wtyczek do przepisów, książek, płyt itp. Warto więc rozejrzeć się, czy nie ma czegoś, co dokładnie spełnia twoje potrzeby i wymagania.
Często tego rodzaju pluginy są wersjami "lite". Korzystając z ich płatnych wersji można rozszerzyć ich zakres funkcji. Przykładem może być użycie wtyczki PayPal, kiedy dokonujesz opłaty za lekcje yogi lub możliwość zmiany jednostki wagi, kiedy korzystasz ze znalezionego w Internecie przepisu. Planując użycie takiej wtyczki, upewnij się czy wersja lite zawiera wszystko to, czego potrzebujesz. Inwestycja w rozszerzoną wersję może być konieczna, jeśli nie chcesz lub nie możesz samodzielnie zaprogramować rozszerzenia.
Właściwa strona WordPress Plugin
Motyw Custom Post Type
W tym przypadku najczęściej mamy do czynienia z portfolio, funkcją niezbędną w pracy fotografów, projektantów, agencji, artystów czy copywriterów.
Uważam to za nieco problematyczne: funkcja portfolio jest oczywiście bardzo przydatna, jeśli wiesz, że potrzebujesz dokładnie tego. Warto wziąć pod uwagę jednak to, co się stanie, jeśli za trzy lata zechcesz zmienić wygląd strony? W najgorszym wypadku, wraz ze zmianą motywu, Twój skrupulatnie wypełnione Custom Post Types znikną ze strony - a wszystkie wpisy będziesz mógł/a przenieść do oddrębnego portfolio. Tylko doświadczeni programiści są w stanie korzystać z zaprogramowanej wtyczki w celu pobrania wpisów. W takiej sytuacji należy od początku zaprojektować również archiwum itd.
Zastanowiłbym się więc dwa razy przed podjęciem decyzji o korzystaniu z CPT przez motyw, czy może lepszym wyjściem nie byłoby zainstalowanie dodatkowej wtyczki, która tak naprawdę potrafi to samo. W takie sytuacji nawet po zmianie szablonu możesz zainstalować tę samą wtyczkę, łącznie z zawartością.
Wtyczka, za pomocą której można stworzyć własne typy wpisów (CPT)
Tak, istnieje również takie rozwiązanie. Za pomocą niektórych narzędzi można bez większego wysiłku tworzyć własne typy wpisów, a następnie uzupełnić je o swój tekst. Jeśli więc dokładnie wiesz, czego szukasz, ale Twoje umiejętności programistyczne nie są na tyle zaawansowane, aby samodzielnie napisać kod, instalacja dodatkowej wtyczki to bardzo dobre rozwiązanie. Za jej pomocą możesz stworzyć listę partnerów, czy mapę sklepów należących do tej samej sieci.
Ponadto można - w połączeniu np. z Advanced Custom Fields - tworzyć najróżniejsze aplikacje. Jak to działa bardzo dobrze opisuje Michael Hörnlimann w swoim artykule Czym są Advanced Custom Fields (ACF) w WordPress . Tak wygląda backend interfejsu użytkownika Plugins Custom Post Type UI:

Stwórz samodzielnie wtyczkę Custom Post Type
Najlepsze rozwiązania są często właśnie najbardziej skomplikowane. Przy tworzeniu własnej wtyczki dla custom post type występują dwa główne problemy: "Jak zaprogramować wtyczkę?" oraz "Jak zaprogramować custom post type?". W uniwersum WordPress istnieje jednak wiele przystępnych instrukcji wyjaśniających kwestie samodzielnego majsterkowania w tym obszarze. Jeśli poświęcisz się temu zadaniu i zrobisz odpowiedni reasearch, będziesz w stanie odnaleźć precyzyjną odpowiedź na Twoje pytanie.
Kiedy już poznasz dostępne ustawienia, możesz stworzyć custom post type wedle własnego pomysłu. Jeśli potrafisz również tworzyć szablony z uwzględnieniem custom post type, to Twoje możliwości są nieograniczone. W połączeniu z kreatorem Gutenberg będziesz w stanie tworzyć wyjątkowe i atrakcyjne publikacje.

Utwórz CPT projektując szablon
Dla jasności: custom post type może stanowić również część motywu strony WP. Jednak nie polecam tego rozwiązania, ponieważ w momencie zmiany szablonu, Twój CPT zostanie usunięty wraz z nim. Jeśli Twoje umiejętności Ci na to pozwolą możesz oczywiście manualnie dołączyć je do nowego wyglądu strony. Możesz również zaoszczędzić swój czas i użyć wtyczki.
W witrynie Theme można zaprojektować widoki archiwum CPT i pojedynczego widoku CPT, jeśli w ogóle wymagają dostosowania. W przypadku Plugin jest to o wiele bardziej skomplikowane. Ale dzięki Gutenberg możesz przynajmniej w dużym stopniu dostosować swoje pojedyncze widoki. Za pomocą prostego Plugin jak Duplicate Post możesz zduplikować swoje wpisy i dostosować je do nowego wpisu.
Przykłady Custom Post Types
Słowniczek dla celów SEO
Nie kłóć się ze mną, czy tworzenie takiej kolekcji ma sens z punktu widzenia SEO. Nie wiem, czy to ma sens, czy nie, bo nie jestem ekspertem od SEO.
Ideą przyświecającą powstaniu tej listy było umieszczenie na stronie jak największej liczy tematycznie związanych z nią terminów, tak aby pojawiały się one w wynikach wyszukiwania, a także zwiększały ich trafność poprzez zamieszczone linki wewnętrzne.
Wdrożyłem ten wymóg z zastosowaniem hierarchicznego ułożenia CPT dla poszczególnych haseł. Dodatkowo, zaprogramowałem listę w ten sposób, aby między poszczególnymi literami alfabetu występował 'podtytuł'. Jest to przykład, który może mieć wiele zastosowań:

Kalendarz terminów dla szkoły dla psów
Klasyczny przykład palnnera, w którym nanosimy terminy zajazdów i warsztatów, które odbędą się w najbliższej przyszłości. Opiekunowie psów mogą wybrać dogodny dla siebie termin i zarezerwować miejsce na konkretnym spotkaniu.
Przekonałem się o tym dzięki Plugin Events Manager. Daje to wiele możliwości - właściwie trochę za dużo jak na tak "proste" zadanie. Ale programowanie go samodzielnie byłoby w tym przypadku zbyt pracochłonne.

Osobisty zbiór przepisów
Sam całkiem niedawno stworzyłem dla siebie chronologiczny, CPT z myślą o stworzeniu własnej 'książki kulinarnej'. Istnieją taksonomie do rozpisania składników, resztę stworzyłem przy użyciu Gutenberga . Projektując mój blog zdecydowałem się na widok strony archiwalnej.
Oczywiście, równie dobrze mógłbym pokusić się o użycie wtyczek, ale robiąc ten projekt, chciałem zrealizować go dokładnie tak, jak wyobrażam sobie moją wymarzoną stronę z przepisami. Sądzę, że gdybym zdecydował się na założenie bloga podróżniczego lub poświęconego fotografii, wyglądałby on podobnie do mojej e-książki kucharskiej.

Obszar pobierania w WordPress
W tym zleceniu klient potrzebował prostego narzędzia do chronologicznego zamieszczania plików do pobrania w backendzie. Wgrywanie plików PDF odbywa się w tym przypadku poprzez Advanced Custom Fields, a ja musiałem zająć się tym, aby WordPress do automatycznie wyświetlał pierwszą stronę każdego pliku jako zrzutu ekranu. Za pomocą taksonomii "obszary" i "słowa kluczowe" użytkownicy mogą dodatkowo filtrować pobrane pliki.

Moje wnioski na temat Custom Post Types
Własne typy wpisów pozwalają na użytkowanie WordPressa na wiele sposobów i wprowadzanie ulepszeń na Twojej stronie. Za pomocą odpowiednich narzędzi można szybko i samodzielnie tworzyć własne typy postów. Ważna dla użytkowników zawartość może być prezentowana w postaci atrakcyjnych stron archiwalnych lub finezyjnie zaprojektowanych pojedynczych stron.
Automatycznie tworzone strony archiwum umożliwiają filtrowanie i wyszukiwanie według typu postu. Taksonomie rozszerzają funkcje CPT, tworząc automatycznie strony archiwalne dla odpowiednich terminów taksonomii. Masz więcej fajnych przykładów? Daj mi znać w komentarzach.