Jeden z naszych czytelników skontaktował się ostatnio z prośbą o sposoby dodawania kategorii do niestandardowego typu postu w WordPress.
Kategorie są jedną z wbudowanych taksonomii w WordPressie, głównie dla wpisów blogowych. Jednak nie pojawiają się one automatycznie w niestandardowych typach postów, co ogranicza Twoje opcje organizacyjne.
Na szczęście przez lata pracy nad stronami WordPress znaleźliśmy proste rozwiązania tego problemu.
W tym artykule pokażemy Ci, jak dodać kategorie do niestandardowego typu posta w WordPress.

Kiedy może być konieczne dodanie kategorii do niestandardowego typu posta?
WordPress pozwala programistom wtyczek i właścicielom stron internetowych tworzyć własne typy treści. Podobnie jak w przypadku wpisów i stron, te niestandardowe typy postów mogą również mieć własne taksonomie, takie jak kategorie i tagi.
Na przykład, jeśli publikujesz recenzje filmów, możesz chcieć utworzyć niestandardowy typ posta dla „Filmów”.
Możesz również potrzebować zorganizować swoje filmy w odpowiednie tematy, do tego będziesz potrzebować niestandardowej taksonomii. Możesz utworzyć taksonomię o nazwie gatunek.
Jednak co, jeśli chcesz używać tych samych kategorii, których używasz do swoich wpisów na blogu, z typem wpisu Filmy?
W tym momencie musisz włączyć kategorie dla swojego niestandardowego typu posta. Pozwoliłoby to na używanie tych samych kategorii zarówno dla Twoich postów na blogu, jak i dla Twojego niestandardowego typu posta.
Biorąc to pod uwagę, przyjrzyjmy się teraz, jak łatwo dodawać kategorie do niestandardowego typu posta w WordPress.
- Dodaj kategorie do niestandardowego typu posta za pomocą wtyczki
- Ręczne dodawanie kategorii do niestandardowego typu posta za pomocą kodu
- Wyświetlanie wielu typów postów na stronie kategorii
- Eksperckie poradniki dotyczące kategorii w WordPress
Dodaj kategorie do niestandardowego typu posta za pomocą wtyczki
Jeśli jesteś początkującym, zalecamy użycie wtyczki Custom Post Type UI do tworzenia niestandardowych typów postów.
Dzięki wtyczce Custom Post Type UI masz możliwość powiązania swojego niestandardowego typu posta z dowolną wbudowaną lub niestandardową taksonomią, w tym z kategoriami.
Najpierw musisz zainstalować i aktywować wtyczkę Custom Post Type UI. Więcej szczegółów znajdziesz w naszym przewodniku krok po kroku na temat jak zainstalować wtyczkę WordPress.
Po instalacji musisz odwiedzić CPT UI » Dodaj/Edytuj typy postów, aby utworzyć nowy niestandardowy typ posta lub edytować istniejący niestandardowy typ posta utworzony za pomocą wtyczki.

Przewiń w dół do sekcji Opcje Ustawień. Tam zobaczysz obszar Taksonomie.
Musisz zaznaczyć pole obok kategorii i zapisać swój niestandardowy typ posta.

Nie zapomnij kliknąć przycisku „Zapisz typ postu”, aby zapisać swoje ustawienia.
Teraz możesz edytować dowolną treść w ramach tego konkretnego typu posta, a zobaczysz opcję wyboru kategorii w prawej kolumnie w edytorze bloków WordPress.

Ręczne dodawanie kategorii do niestandardowego typu posta za pomocą kodu
Jeśli utworzyłeś niestandardowy typ posta, dodając kod w pliku functions.php swojego motywu, wtyczkę specyficzną dla witryny lub we wtyczkę fragmentów kodu, będziesz musiał zmodyfikować kod, aby dodać kategorie jako obsługiwane taksonomie.
Wszystko, co musisz zrobić, to dodać tę linię w argumentach dla swojego niestandardowego typu wpisu.
'taxonomies' => array( 'category' ),
Prawdopodobnie masz już tę linię w istniejącym kodzie dla swojego niestandardowego typu wpisu z jakąś inną niestandardową taksonomią. Jeśli tak, wystarczy dodać po niej przecinek i dodać kategorię, w ten sposób:
'taxonomies' => array('topics', 'category' ),
Oto pełny przykład kodu, w którym utworzyliśmy niestandardowy typ postu o nazwie „Filmy” z obsługą wbudowanych kategorii.
function custom_post_type() {
// Set UI labels for Custom Post Type
$labels = array(
'name' => _x( 'Movies', 'Post Type General Name', 'twentythirteen' ),
'singular_name' => _x( 'Movie', 'Post Type Singular Name', 'twentythirteen' ),
'menu_name' => __( 'Movies', 'twentythirteen' ),
'parent_item_colon' => __( 'Parent Movie', 'twentythirteen' ),
'all_items' => __( 'All Movies', 'twentythirteen' ),
'view_item' => __( 'View Movie', 'twentythirteen' ),
'add_new_item' => __( 'Add New Movie', 'twentythirteen' ),
'add_new' => __( 'Add New', 'twentythirteen' ),
'edit_item' => __( 'Edit Movie', 'twentythirteen' ),
'update_item' => __( 'Update Movie', 'twentythirteen' ),
'search_items' => __( 'Search Movie', 'twentythirteen' ),
'not_found' => __( 'Not Found', 'twentythirteen' ),
'not_found_in_trash' => __( 'Not found in Trash', 'twentythirteen' ),
);
// Set other options for Custom Post Type
$args = array(
'label' => __( 'movies', 'twentythirteen' ),
'description' => __( 'Movie news and reviews', 'twentythirteen' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page',
'show_in_rest' => true,
// This is where we add taxonomies to our CPT
'taxonomies' => array( 'category' ),
);
// Registering your Custom Post Type
register_post_type( 'movies', $args );
}
/* Hook into the 'init' action so that the function
* Containing our post type registration is not
* unnecessarily executed.
*/
add_action( 'init', 'custom_post_type', 0 );
Wyświetlanie wielu typów postów na stronie kategorii
Domyślnie strony kategorii w Twojej witrynie WordPress będą wyświetlać tylko domyślny typ posta „Wpisy”.

Aby wyświetlić niestandardowe typy postów na tej samej stronie kategorii co domyślne wpisy, musisz dodać ten kod do pliku functions.php swojego motywu lub do wtyczki fragmentów kodu:
add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
if( is_category() ) {
$post_type = get_query_var('post_type');
if($post_type)
$post_type = $post_type;
else
$post_type = array('nav_menu_item', 'post', 'movies'); // don't forget nav_menu_item to allow menus to work!
$query->set('post_type',$post_type);
return $query;
}
}
Uwaga: Nie zapomnij zastąpić „filmy” nazwą swojego własnego niestandardowego typu postu.
Zalecamy dodanie tego kodu za pomocą WPCode, najlepszej wtyczki fragmentów kodu na rynku. WPCode sprawia, że dodawanie niestandardowego kodu w WordPress jest bezpieczne i łatwe, bez konieczności edycji pliku functions.php motywu.

Aby rozpocząć, musisz zainstalować i aktywować bezpłatną wtyczkę WPCode. Jeśli potrzebujesz pomocy, zapoznaj się z naszym poradnikiem jak zainstalować wtyczkę WordPress.
Po aktywacji wtyczki przejdź do Fragmenty kodu » Dodaj fragment z panelu WordPress.
Na stronie Dodaj fragment, najedź kursorem myszy na opcję „Dodaj swój niestandardowy kod (nowy fragment)” i kliknij przycisk „+ Dodaj niestandardowy fragment”.

Następnie wybierz „Fragment PHP” jako typ kodu z listy opcji, które pojawią się na ekranie.

Następnie dodaj tytuł dla swojego fragmentu na górze strony, który służy jedynie do twojej wiadomości i może być czymkolwiek, co pomoże ci zapamiętać, do czego służy kod.
Następnie po prostu wklej kod z góry do pola „Podgląd kodu”.

Następnie przełącz przełącznik na górze strony z „Nieaktywny” na „Aktywny” i kliknij przycisk „Zapisz fragment”.

Teraz możesz odwiedzić stronę archiwum kategorii, a wyświetli ona Twoje wpisy z niestandardowego typu postu.

Możesz użyć tych samych metod, aby dodać tagi do swoich niestandardowych typów postów. Zobacz nasz przewodnik po kategoriach vs. tagach, aby dowiedzieć się więcej.
Eksperckie poradniki dotyczące kategorii w WordPress
Chcesz dowiedzieć się więcej o używaniu kategorii w WordPress? Sprawdź te tutoriale:
- Jak zmienić kolejność kategorii w WordPress
- Jak prawidłowo zmieniać, przenosić i usuwać kategorie WordPress
- Jak wymusić jedną kategorię na wpis w WordPress
- Jak dodać obrazy taksonomii (ikony kategorii) w WordPress
- Jak przekonwertować kategorie WordPress na niestandardowe taksonomie
- Jak pokazać puste kategorie w widżetach WordPress
- Jak śledzić analizę kategorii i tagów WordPress (łatwy sposób)
Mamy nadzieję, że ten artykuł pomógł Ci dowiedzieć się, jak dodawać kategorie do niestandardowego typu posta w WordPress. Możesz również zapoznać się z naszym wyborem najlepszych niezbędnych wtyczek WordPress do rozwoju Twojej strony internetowej lub z tymi wskazówkami dotyczącymi zwiększania ruchu na blogu.
Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.

Chandu Mullangi
Dzięki za ten artykuł
Kod do Wyświetlanie wielu typów postów na stronie kategorii działa dobrze.
Chcę wyświetlić wiele typów postów na stronie Tagów, czy możesz udostępnić ten kod.
Wsparcie WPBeginner
Aby dodać tagi do swoich niestandardowych typów postów, dodaj „post_tag” do swojej tablicy taksonomii, więc będzie wyglądać tak:
‘taxonomies’ => array( ‘category’, ‘post_tag’ ),
Admin
Muhamad Shahzad
Jak możemy oddzielić listy kategorii niestandardowego typu posta od kategorii postów blogowych. Dodałem powyższy kod i działa. Ale problem polega na tym, że kategorie tego niestandardowego typu posta i postów blogowych są wymieszane. Powinny być oddzielone.
Wsparcie WPBeginner
Celem tego samouczka jest ich połączenie, ponieważ to, czego szukasz, może być najlepiej osiągnięte poprzez użycie innej kategorii dla niestandardowych typów postów, aby nie pojawiały się one na Twoich stronach archiwum kategorii.
Admin
Poulomi Basu
Witaj,
Użyłem tego kodu i działał idealnie! CPT pojawia się w kategorii postów, którą dla niego wybrałem.
Ale nie pojawia się w moim archiwum bloga. Tak jak domyślne archiwum, które pokazuje wszystkie posty.
Jak mogę go tam również pokazać?
Wielkie dzięki!
Wsparcie WPBeginner
You would want to take a look at our article below that covers how to do this
https://www.wpbeginner.com/wp-tutorials/how-to-create-custom-post-types-in-wordpress/
Admin
Connie
Proszę powiedzieć mi, jak dodać kategorię CPT do menu?
Mam CPT „artykuł” z kategorią „samochód” i „ciężarówka”
Chcę mieć niestandardowe menu z następującymi pozycjami:
Wszystkie – samochody – ciężarówki
Szukam i szukam i nie znajduję. Widzę kategorie w menu-administracja i mogę je dodać do menu, ale wynik tych linków = puste strony
Przypuszczam, że wymienione kategorie są przeznaczone jako kategorie postów, a nie jako kategorie cpt...
Czy masz dla mnie jakąś wskazówkę?
Connie
Wsparcie WPBeginner
Możesz sprawdzić opcje ekranu w obszarze menu, aby zobaczyć, czy niestandardowy typ posta jest tam dostępną opcją, która jest obecnie odznaczona.
Admin
Vico
Stworzyłem typ posta o nazwie produkty i używam podstawowych kategorii wp.
Moja struktura adresów URL produktów to mysite.com/product/skf bearing 12
Moje strony kategorii pokazują mysite.com/category/bearings
Dlaczego adres URL produktu nie wyświetla kategorii w adresie URL? Tak jak tutaj:
mysite.com/bearings/skf bearing 12
Mój niestandardowy permalink posta to %category%%post%
Zapisałem permalink, ale nadal pokazuje się ta sama struktura.
dharamjeet
hej! moja domyślna lista kategorii postów wyświetla się na liście kategorii niestandardowych typów postów
proszę pomóż mi to poprawić
carlos ballin
finally works for me
thank you
Moises
Dlaczego dodałeś twentythirteen do kodu?
Wsparcie WPBeginner
Cześć Moises,
Ten ciąg znaków jest używany do tłumaczenia. Jeśli Twój motyw obsługuje tłumaczenie, musisz zastąpić go domeną tekstową Twojego motywu. Jeśli nie masz pewności, czego tutaj użyć, zapytaj wsparcie swojego motywu. Możesz również wkleić go tak, jak jest, a te ciągi znaków zostaną zignorowane.
Admin
Brian
FYI, to zepsuje twoją masową edycję w panelu administracyjnym. Dodałem to do wielu typów postów i kiedy przechodzę do masowej edycji, część zapytania post_type staje się „Array” zamiast typu posta, który próbuje edytować w panelu administracyjnym.
Aby to obejść, wystarczy dodać to przed if( is_category() ):
`if ( is_admin() ) return;`
rose
Cześć, potrzebuję pomocy.
Mam 2 CPT i nie chcę, aby miały wspólną taksonomię.
Na przykład
CPT 1
– Taksonomia (Typy)
– Typ A
– Typ B
CPT 2
– Taksonomia (Typy)
– Typ c
– Typ D
Uwaga: Nie chcę tutaj pokazywać typów A i B z CPT 1
Dziękuję
Wsparcie WPBeginner
Cześć Rose,
Podczas tworzenia taksonomii możesz nazwać je inaczej i pozwolić im mieć te same etykiety.
Admin
Gabriela
Jak dodać drugi niestandardowy typ posta?
Próbowałem powtórzyć kod, zmieniając tylko nazwy moich CPT, ale to nie działa…
Jakieś pomysły?
Arun Sathiya
Kod wyświetlający CPT na stronach kategorii działa idealnie, dziękuję! Ale jest coś, co powinieneś zauważyć. Najnowszy post / post CPT oznaczony nazwą kategorii nie pojawia się od razu na tej stronie kategorii. Pojawia się dopiero przy drugiej podobnej akcji – dopiero gdy do tej samej kategorii zostanie dodany kolejny post / post CPT, pierwszy post pojawia się na tej stronie kategorii. Czy jest na to jakieś rozwiązanie?
Sonjoe
Używam CPT UI. Stworzyłem niestandardowy typ posta „jobs” i zezwoliłem na kategorie. Ale te same kategorie są również w Postach. Używają tych samych kategorii. Czy jest możliwe, że mój niestandardowy typ posta „jobs” będzie miał własne kategorie, a klasyczne posty będą miały własne kategorie? Dzięki
Rizky
To samo pytanie. Czy potrzebujemy uruchomić niestandardowe zapytanie, jeśli chcemy utworzyć archiwum kategorii tego niestandardowego typu wpisu?
fathur
Jak radzisz sobie z widżetem paska bocznego Ostatnie posty, który również wymienia pozycję menu?
$post_type = array(‘nav_menu_item’, ‘post’, ‘movies’);
Wsparcie WPBeginner
możesz usunąć nav_menu_item
Admin
vivek
Thanks for the great tutorial here.
Czy możesz mi powiedzieć, jak mogę wyświetlić niestandardowe posty według kategorii na osobnej stronie.
Domyślna strona kategorii działa poprawnie, wyświetla posty. ale kiedy próbowałem wyświetlić posty z tej samej kategorii na innej stronie, zwraca pustą tablicę. Proszę o pomoc
Matthew Wright
Dziękuję! To jest niesamowite. Rozwiązało to po prostu problem, nad którym pracowałem z znacznie bardziej skomplikowanymi rozwiązaniami (które nie działały).
Mam jednak jedno pytanie: nigdy nie dodawałem deklaracji taksonomii podczas tworzenia niestandardowych taksonomii dla moich CPT, a taksonomie zawsze działały. Dodałem tylko „kategorię”, aby zobaczyć, co się stanie, i zadziałało to pięknie, dodało kategorie postów do mojego CPT bez negatywnego wpływu na istniejące niestandardowe taksonomie.
Czy jednak najlepszą praktyką jest umieszczanie niestandardowych taksonomii w argumentach CPT?
Thanks again for sharing
Wsparcie WPBeginner
Tak, jeśli już wiesz, że będziesz używać niestandardowej taksonomii dla tego konkretnego typu posta.
Admin
Daisy
Niestandardowy kod do dodawania kategorii i podkategorii w niestandardowym typie posta. Jeśli wybiorę $post_type = array(‘nav_menu_item’, ‘post’, ‘myPostType’); kod do wyświetlania moich kategorii wyświetla tylko tę kategorię, ale jeśli ponownie użyję tej samej funkcji dla innej kategorii, nie zadziała. Proszę o jakąś wskazówkę.
Chris Najman
Witam. Pomyślnie utworzyłem niestandardowy typ posta (Grafika) w pliku functions.php. Następnie utworzyłem niestandardową taksonomię („hierarchiczna” => true), co oznacza, że mogę dodawać niestandardowe kategorie podczas tworzenia nowego posta Grafika.
Zastanawiałem się, czy w ramach tej samej funkcji niestandardowej taksonomii mogę wstępnie zdefiniować kategorie dla posta o dziełach sztuki.
Chcę, aby użytkownik mógł wybrać tylko dwie kategorie: 1) Malarstwo, 2) Rzeźba. Nie chcę, aby użytkownik mógł dodawać żadnych innych kategorii. Idealnie byłoby, gdyby użytkownik był „zmuszony” do wyboru jednej lub drugiej kategorii, tj. post nie mógłby zostać opublikowany, dopóki kategoria nie zostałaby wybrana.
Czy to jest możliwe?
Wsparcie WPBeginner
Jest to możliwe dzięki tworzeniu niestandardowych ról użytkowników z ograniczeniem tworzenia kategorii.
Admin
Mau Ferrusca
Dodaję więcej niż jedną kategorię do kilku niestandardowych typów postów.
Jak można dodać więcej niż jeden w linii:
$post_type = array(‘nav_menu_item’, ‘post’, ‘myPostType’);
?
Dzięki!
Mau Ferrusca
Już rozwiązałem swój problem.
Być może instynktownie zacząłem wymieniać moje niestandardowe typy postów jako tablicę, ale okazuje się, że wszystko, czego potrzebowałem, to umieścić je w obiekcie $post_type, oddzielając je przecinkami.
Dzięki!
Eren
Cześć, mam pytanie. Używam wtyczki jako typu posta i ma ona własny obszar kategorii. Chcę używać kategorii rdzennych WordPress w tej wtyczce, ale do tej pory nie udało mi się tego zrobić. Użyłem powyższej wtyczki, a po tym tworzy ona 2 obszary kategorii pod wtyczką i kiedy chcę pokazać posty pod tym typem posta z kategoriami, nic się nie wyświetla, ponieważ lista kategorii wtyczki jest pusta. Próbowałem wielu rzeczy, w tym modyfikowania kodu wtyczki, ale nic nie rozwiązało mojego problemu. Czy możesz coś zasugerować?
Davide
Czy znalazłeś jakieś rozwiązanie tego problemu?
David
Czy ten artykuł został ostatnio zaktualizowany, aby działał z obecną wersją WP? Zauważyłem, że używana wtyczka nie była aktualizowana od ponad 2 lat, co sprawia, że jestem trochę niechętny do jej używania.
David
Przepraszam, nieważne, widzę zaktualizowane informacje.
Piyush
Dziękuję za świetny tutorial. Czy możesz mi powiedzieć, jak mogę wyświetlić niestandardowe posty według kategorii na osobnej stronie. Załóżmy, że mam CPT „talent” i kategorię „sztuka”. Mam dwa różne posty, jeden jest stworzony w ramach CPT „talenty”, a drugi jest ogólnym postem stworzonym w ramach „postów”. Oba posty są przypisane do kategorii „sztuka” (jest to wspólne dla obu CPT i ogólnych postów). Teraz wiem, że dla ogólnych postów można wyświetlić stronę kategorii jako przykład.com/category/art/. Dla strony kategorii CPT zakładam, że adres URL powinien być example.com/talent/art/, ale zwraca mi błąd 404.
Wsparcie WPBeginner
Spróbuj zaktualizować strukturę swoich permalinków. Po prostu przejdź do Ustawienia » Permalink, a następnie kliknij przycisk zapisz zmiany, niczego nie zmieniając.
Admin
Robert
Świetna robota, dzięki!
Mam kilka problemów:
– w widżecie „Kategorie” pojawiają się Kategorie Niestandardowych Typów Postów, ale po kliknięciu pojawia się komunikat „nic nie znaleziono”.
– w widżecie „Najnowsze posty” nie pojawiają się Posty Niestandardowych Typów Postów.
Czy jest sposób, aby to naprawić?
Hemang Rindani
Ciekawy artykuł. WordPress to potężna usługa zarządzania treścią dla przedsiębiorstw, która pozwala firmie na posiadanie wydajnych stron internetowych odpowiadających jej wymaganiom biznesowym. Jest łatwy w użyciu, a intuicyjne narzędzia sprawiają, że rozwój wydaje się prostszy. Od responsywnego projektowania po bezpieczeństwo i skalowalność, WordPress CMS ma to wszystko, jednak wyszukiwanie odpowiednich narzędzi dla strony internetowej jest ważne.
Dodawanie kategorii do niestandardowego typu posta czasami staje się koniecznością w celu rozróżnienia jednego posta od drugiego, gdzie metody wspomniane w artykule będą przydatne. Użycie wtyczki będzie łatwą metodą, gdzie nawet osoba nietechniczna będzie w stanie to zaimplementować, jednak dzięki temu artykułowi nie czuję, że użycie kodu do dodania tej funkcji przez osobę nietechniczną będzie trudne.
Dzięki za udostępnienie.
Emily Johns
Świetne wskazówki, znalazłem sposób na rozwiązanie mojego problemu dzięki temu. Dzięki!