Kompletny przewodnik po niestandardowych typach postów WordPress

Opublikowany: 2024-03-26

Ponad dziesięć lat temu podjąłem decyzję zmieniającą życie i karierę, aby skupić się wyłącznie na używaniu WordPressa jako mojej platformy wydawniczej i CMS-a, dla którego tworzę wtyczki. Głównymi powodami była doskonała dokumentacja, w tym niezliczone posty z fragmentami i tutorialami oraz łatwość rozbudowy WordPressa. W moich ówczesnych przypadkach najbardziej znaczącą funkcją rozszerzającą WordPress były niestandardowe typy postów.

Ulepszone głównie w wersji 3 WordPressa w 2010 roku, niestandardowe typy postów (CPT) są używane na wiele sposobów. Jestem pewien, że spotkałeś ich nieświadomie. Pozwólcie, że przedstawię wam przegląd CPT, konkretne przykłady tego, jak z nich korzystałem na przestrzeni czasu, jak je samodzielnie skonfigurować i jak osiągnąć jeszcze więcej dzięki powiązanym wtyczkom.

Jakie są niestandardowe typy postów?

Rdzeń WordPress zawiera różne typy postów. Najbardziej oczywiste to Posty, Strony i Załączniki.

W WordPress 6.4 są jeszcze cztery:

  • Wersje
  • Menu nawigacji
  • Szablony bloków
  • Części szablonu

Ciekawostka: komentarze nie są rodzajem postu. Myślę, że gdyby WordPress nie był pierwotnie platformą blogową z komentarzami jako centralną częścią, obecnie traktowano by je również jako typ postu.

Jak to może sugerować, typy postów nie zawsze są oczywiste i niekoniecznie są czymś widocznym w interfejsie, co określilibyśmy jako „treść”. Stanowią raczej grupę powiązanych ze sobą elementów w bazie danych.

Możesz dodać więcej takich „rzeczy”, które będą wówczas nazywane „niestandardowymi” typami postów.

Nie jest to oficjalny termin WordPress, ale podoba mi się określenie Niestandardowe typy „treści” dla dowolnego widocznego niestandardowego typu postu. Później przejdę do kilku przykładów.

Dlaczego warto używać niestandardowego typu postu?

WP Mayor z biegiem czasu korzystał z wielu niestandardowych typów postów, takich jak oferty dożywotnie, które możesz teraz zobaczyć.

Osobiście korzystałem z niestandardowych typów postów do wielu rzeczy.

Najczęściej spotykane są osobne sekcje treści na stronach internetowych. Ma to największy sens, gdy treść powinna być wyświetlana i zachowywać się inaczej niż wbudowane posty i strony.

Wyobraźmy sobie, że WP Mayor miałby również dedykowany typ wpisu „Aktualności”. Rejestrując ten niestandardowy typ postu, można uzyskać następujące korzyści:

  • Wyraźna pozycja „Wiadomości” w menu WP Admin.
  • Szansa na nadanie użytkownikom i rolom użytkowników różnych możliwości dla tego typu.
  • Mają różne szablony do wyświetlania pojedynczych wiadomości na interfejsie.
  • Oddzielne archiwum i kanał aktualności.
  • Dodatkowe metadane postów są przechowywane i wyświetlane wyłącznie w wiadomościach.

Użyłem również niestandardowych typów postów dla elementów treści w różnych wtyczkach. Kiedyś zbudowałem platformę rezerwacji domów wakacyjnych, gdzie domy, rezerwacje i płatności były odrębnymi niestandardowymi typami postów z unikalnymi atrybutami. Robi to również większość wtyczek e-commerce do WordPressa.

W innym przypadku chciałem rejestrować treść wszystkich wychodzących e-maili. Zbudowałem więc typ postu „Log” z treścią wiadomości e-mail i wszystkimi dołączonymi metadanymi, które były widoczne tylko przy odpowiednich możliwościach w zapleczu WordPress.

Wreszcie opracowana przeze mnie wtyczka Advanced Ads wykorzystywała CPT do przechowywania treści reklam.

To tylko kilka przykładów niestandardowych typów postów. Wiem, że zapomniałem wspomnieć o wielu innych ekscytujących przypadkach użycia, które spotkałem przez lata.

Główną zaletą CPT w WordPress jest to, że wymagają tylko kilku linijek kodu lub szybkiej konfiguracji za pomocą wtyczki, a WordPress zajmuje się dużą logiką potrzebną do zarządzania nimi i wyświetlania ich w Twojej witrynie. Przejdźmy więc od razu do tworzenia niestandardowych typów postów WordPress.

Tworzenie niestandardowego typu postu

Niestandardowe typy postów można tworzyć ręcznie lub za pomocą wtyczki.

Jeśli nie masz doświadczenia w kodowaniu, wtyczki znacznie ułatwią Ci tworzenie niestandardowych typów postów.

Wadą korzystania z wtyczki jest to, że niestandardowy typ postu znika natychmiast po usunięciu wtyczki. Chociaż prawdopodobnie nadal istnieje w bazie danych, WordPress nie wie już o tym ani w interfejsie, ani w backendzie.

Jako programista, który robił to dziesiątki razy, nadal wolę metodę ręczną. Jednak z radością przyznaję, że używam również wtyczek z ładnym interfejsem użytkownika, jeśli niestandardowy typ postu WordPress jest używany tymczasowo lub w celu stworzenia prezentacji dla klienta.

Decyzje dotyczące niestandardowych typów postów

Pomimo metody, której używamy do tworzenia niestandardowego typu postu, musimy najpierw podjąć kilka decyzji. Chociaż teoretycznie możesz zmienić którekolwiek z nich później, może to mieć duży wpływ na Twoją witrynę i konfigurację, dlatego najlepiej pomyśleć o nich z wyprzedzeniem.

Publiczne czy nie?

Główną decyzją dotyczącą niestandardowych typów postów jest to, kto powinien je widzieć i wchodzić z nimi w interakcję. Za pomocą własnego kodu lub wtyczki możesz wybrać, czy CPT będzie widoczny w interfejsie, w tym w archiwach i pojedynczych stronach dostępnych bezpośrednio, a także czy użytkownicy znajdą go za pomocą wyszukiwania. Czy powinien pojawić się na zapleczu Twojej witryny WordPress wraz z pozycją menu?

Chociaż CPT „Wiadomości” jest prawdopodobnie w pełni widoczny w interfejsie użytkownika, dziennik wewnętrzny lub coś w rodzaju płatności może być ograniczone do użytkowników mających określoną rolę w zapleczu WordPress.

Hierarchiczny

Być może zauważyłeś, że typy postów WordPress Posts i Pages zachowują się nieco inaczej. Strony nie mają archiwum w interfejsie, ale możesz mieć strony nadrzędne i podrzędne.

Ta ostatnia nazywa się „hierarchią”, która jest również definiowana podczas tworzenia własnego typu postu.

W przypadku hierarchicznych typów postów strona edycji oferuje opcję wyboru strony nadrzędnej i kolejności.

Sekcja atrybutów strony w edytorze WordPress pokazująca opcje hierarchii stron.
Opcje hierarchii podczas edycji strony.

Kolejność i strona nadrzędna mogą mieć znaczenie podczas automatycznego tworzenia menu lub list ze stron. Hierarchia jest również widoczna w ślimaku adresu URL. Jeśli moja strona miała nazwę „Rozwiązywanie problemów” z „Dokumentacją” jako stroną nadrzędną, końcowym adresem URL może być documentation/troubleshooting .

Wskazówka: Jeśli masz CPT z głębszą hierarchią, polecam użycie wtyczki Nested Pages, aby szybko uporządkować posty we właściwej kolejności.

Edytor blokowy lub klasyczny

Podczas tworzenia niestandardowego typu postu zostaniesz zapytany, czy pokazać go w „REST API”, czy nie. Ten techniczny termin ma jedną kluczową rolę: określa, czy Twój CPT korzysta z edytora blokowego, czy z klasycznego widoku edytora.

Ogólnie rzecz biorąc, korzystanie z edytora bloków ma sens, jeśli typ postu jest podobny do zwykłej treści i chcesz używać bloków WordPress. Każdy niestandardowy typ postu, który nie wymaga dużej części ekranu na treść, powinien wybrać klasyczny edytor. Dlatego nie należy go dostarczać za pośrednictwem interfejsu API REST.

Błędy i struktura adresów URL

Kolejną ważną decyzją, którą musisz podjąć, jest nadanie nazwy ślimakowi CPT. Nasz typ postu „Wiadomości” może być określany w adresie URL jako news , ale jeśli masz bardziej fantazyjne nazwy wewnętrzne, możesz wybrać krótki formularz dla adresów URL frontendu.

To może być ważna decyzja dla Twojego SEO, więc poświęć kilka minut na przemyślenie tej decyzji.

Obsługiwane elementy

W zależności od typu tworzonego wpisu możesz także od razu zdecydować, czy włączyć obsługę następujących elementów:

  • Tytuły (domyślnie włączone)
  • Pojawia się edytor (domyślnie włączony)
  • Uwagi
  • Wersje
  • Autorski
  • Fragmenty
  • Miniatury

Istnieje wiele innych opcji dostrajania. Jednak powyższe są najważniejsze do rozważenia przed użyciem naszego niestandardowego typu postu WordPress.

Utwórz niestandardowy typ postu za pomocą wtyczki

Mając to na uwadze, spójrzmy na tworzenie niestandardowych typów postów za pomocą wtyczki, a następnie zrób to samo ręcznie.

Używam jednego z najpopularniejszych darmowych z wordpress.org: Custom Post Type UI (CPTUI) autorstwa WebDevStudios.

Ich interfejs jest dość prosty i zawiera wszystkie opcje, których można oczekiwać od wtyczki Custom Post Types. Jednak wyjaśnia również, że niestandardowe typy postów są nadal abstrakcyjną koncepcją do zrozumienia, a nie funkcją, przy której zwykły wydawca WordPressa powinien majstrować bez głębszej wiedzy na temat opcji.

Pierwszy ekran z opcjami tworzenia nowego niestandardowego typu postu WordPress za pomocą wtyczki interfejsu użytkownika niestandardowego typu postu.
Tworzenie nowego CPT za pomocą wtyczki interfejsu użytkownika niestandardowego typu postu.

Wskazówka: osobiście jestem konserwatywny w stosunku do opcji „publicznych” moich CPT i ograniczam je tak bardzo, jak to możliwe, jeśli chodzi o to, kto powinien je widzieć w interfejsie, a kto powinien mieć możliwość ich zmiany w backendzie. W razie potrzeby zawsze możesz przyznać większy dostęp później.

Zalety niestandardowego interfejsu użytkownika typu post

Jest kilka rzeczy, które podobają mi się w tej wtyczce, które inni mogą mieć, ale nie muszą.

Zwykle tworzę swoje CPT ręcznie, więc wiem, że pisanie etykiet zajmuje dużo czasu. Jest ich około trzech tuzinów, jeśli chcesz, aby wszystkie zawierały nazwę twojego CPT. Jak widać na powyższym zrzucie ekranu, wtyczka interfejsu użytkownika niestandardowego typu postu ma opcję automatycznego wypełniania tych etykiet. Nadal możesz je dostosować później w interfejsie.

Następnie mogę zapisać mój niestandardowy typ postu i edytować go później . Mogę nawet zmienić ślimak, a wtyczka przeprowadzi migrację wszystkich postów tego typu . Chociaż starałbym się zapobiec sytuacji, w której byłbym tego potrzebny, dobrze jest wiedzieć, że jest to możliwe i obsługiwane przez wtyczkę.

Niestandardowy interfejs użytkownika typu postu umożliwia przegląd typów moich postów . Chociaż wydaje się to nieco przytłaczające, jest znacznie łatwiejsze do przejrzenia niż niestandardowy kod. Podoba mi się też lista szablonów w ostatniej kolumnie.

Przegląd niestandardowych typów postów WordPress utworzonych przez wtyczkę interfejsu użytkownika niestandardowych typów postów.
Wymieniony niestandardowy typ postu.

Te szablony są częścią magii niestandardowych typów postów WordPress. Jeśli nasz CPT ds. wiadomości korzystał z news o ślimakach, WordPress automatycznie szukałby pliku o nazwie archive-news.php w Twoim motywie, aby wyrenderować stronę archiwum tego typu postu lub single-news.php dla pojedynczej strony wiadomości. Aby uzyskać więcej informacji, zobacz Hierarchia szablonów.

Generowanie kodu za pomocą CPTUI

Cechą, która w końcu skłoniła mnie do polecenia interfejsu użytkownika typu Custom Post, było narzędzie do eksportowania CPT do kodu PHP . W obszarze CPT UI > Narzędzia > Pobierz kod znajdziesz kod PHP, którego możesz użyć w swojej wtyczce lub functions.php . Brawa dla twórców wtyczek za to, że nie blokowali ludzi.

To sprawia, że ​​CPTUI jest idealnym narzędziem dla programistów, ponieważ możemy szybko skonfigurować niestandardowy typ postu za pomocą interfejsu, a następnie uzyskać kod PHP, aby go użyć. Możemy nawet pozwolić naszemu klientowi skonfigurować go na stronie testowej – ze wszystkimi etykietami itd. – a następnie przenieść go tam, gdzie jest potrzebny.

Jedyną opcją, której nie mogłem znaleźć we wtyczce, jest usunięcie niestandardowego typu postu ze wszystkimi jego elementami. Ogólnie rzecz biorąc, jeśli usuniesz wtyczkę lub kod, niestandardowe posty pozostaną w bazie danych. Istnieją jednak dedykowane wtyczki do czyszczenia tego.

Korzystanie z kodu

Jeśli jesteś programistą i chcesz zaimplementować niestandardowy typ postu za pomocą kodu, pozwól, że wskażę Ci odpowiednie sekcje w dokumentacji WordPress.

Podstawową funkcją rejestrującą nowy niestandardowy typ postu jest funkcja Register_post_type. Jego parametry pozwalają na ustawienie wszystkich opcji, o których wspomniałem powyżej.

Wszystkie typy postów są przechowywane w tabeli wp_posts w Twojej bazie danych. Pole post_type określa, do którego wpisu należy dany typ postu.

Możesz użyć metadanych postu, jeśli niestandardowy typ postu dotyczy czegoś więcej niż tylko treści. Dane te są przechowywane w wp_postmeta .

Nawiasem mówiąc, niektóre wtyczki używają niestandardowych tabel do zarządzania typami treści. Nie idź tą drogą, chyba że naprawdę musisz, ponieważ nie będziesz w stanie korzystać ze wszystkich wbudowanych funkcji WordPress i funkcji dostępnych w interfejsie API niestandardowych typów postów.

Rozszerz niestandardowe typy postów

Jeśli Twój niestandardowy typ postu jest publiczny, możesz chcieć go jeszcze bardziej dostosować. Oto kilka opcji.

Niestandardowe pola i meta-pola

Bardziej zaawansowane CPT, takie jak wydarzenia lub przedmioty w sklepie, wymagają czegoś więcej niż tylko treści. Tutaj w grę wchodzą pola niestandardowe. Oferują pola wejściowe do strukturyzowania danych na różne sposoby. Na przykład post typu „Wydarzenie” może wymagać daty rozpoczęcia i zakończenia lub miejsca, aby można było wyświetlać i filtrować wydarzenia.

Chociaż możesz dodawać niestandardowe pola i metaboxy z niestandardowym kodem, doskonałą do tego wtyczką są bardzo dobrze znane zaawansowane pola niestandardowe. Ma tak wiele opcji i jest tak dobrze utrzymany, że nawet ja, jako programista, nie kodowałbym niestandardowych pól na własnych stronach.

Taksonomie niestandardowe

Ponieważ domyślny typ postu „Posty” można zamówić z „kategoriami” i „tagami”, możesz zarejestrować taksonomie również dla swojego niestandardowego typu postu.

Wtyczka interfejsu użytkownika niestandardowego typu postu, którą poleciłem powyżej, również pomaga w ich tworzeniu.

Zarządzanie możliwościami

Możesz użyć wtyczek takich jak Członkowie, aby utworzyć nową rolę dla autorów w Twojej witrynie, którzy mogą jedynie tworzyć i zmieniać nowy niestandardowy typ postu lub dostosowywać istniejące powiązane role użytkowników. Jest to zalecane, jeśli przepływ pracy redakcyjnej jest inny dla każdego typu postu.

Przełączanie typów postów

Obecnie reorganizuję treść w wewnętrznej bazie wiedzy zbudowanej za pomocą WordPress. Posty i strony mają tutaj bardzo różne cele. Niektórzy z nich zmienili cele, dlatego potrzebowałem rozwiązania umożliwiającego zmianę typu postu.

Chociaż nie zalecałbym robienia tego lekko w przypadku postów publicznych, nie ma problemu z zrobieniem tego w witrynie niepublicznej z podobnymi typami postów. Aby to osiągnąć, zainstalowałem przełącznik typu postu, doskonałą wtyczkę, dzięki której możesz to zrobić bez problemu. Po zainstalowaniu wtyczka doda sekcję „Typ postu” na ekranie „Edytuj post”. Możesz użyć tego interfejsu, aby w razie potrzeby zmienić typy postów.

Wniosek

Nadal uważam, że niestandardowe typy postów są kluczową funkcją, która umożliwiła rozkwit WordPressa w ciągu ostatniej dekady i później. To podstawa, która zmieniła nasz ulubiony CMS z prostej platformy blogowej w wszechstronne narzędzie do zarządzania wydarzeniami czy zakupami online.

Budując wtyczki używane na wielu stronach internetowych, wciąż spotykam się z kodem do tworzenia nowych typów postów. Ale budując witryny dla siebie i klientów, używam wtyczek. Sprawiają, że tworzenie i zmienianie niestandardowych typów postów jest znacznie prostsze i mają znacznie lepszy interfejs niż kiedykolwiek mogłem zbudować.