Zaufane samouczki WordPress, kiedy ich najbardziej potrzebujesz.
Przewodnik dla początkujących po WordPressie
WPB Cup
25 milionów+
Witryny korzystające z naszych wtyczek
16+
Lata doświadczenia z WordPressem
3000+
Samouczki WordPress od ekspertów

Jak dodać kategorie do niestandardowego typu wpisu w WordPress

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.

Dodawanie kategorii do niestandardowych typów postów w WordPressie

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

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.

Edycja typów postów za pomocą wtyczki CPT UI

Przewiń w dół do sekcji Opcje Ustawień. Tam zobaczysz obszar Taksonomie.

Musisz zaznaczyć pole obok kategorii i zapisać swój niestandardowy typ posta.

Włącz kategorie dla niestandardowego typu postu w WordPress

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.

Kategoria dodana do niestandardowego typu postu

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”.

Brak typu posta

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.

WPCode

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”.

Dodaj nowy fragment niestandardowego kodu w WPCode

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

Wybierz Fragment PHP jako typ kodu

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”.

Wklej kod do pola Podgląd kodu

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

Aktywuj i zapisz swój niestandardowy fragment kodu

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

Typ posta wyświetlany na stronie archiwum kategorii

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:

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.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz w niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak finansowany jest WPBeginner, dlaczego to ważne i jak możesz nas wesprzeć. Oto nasz proces redakcyjny.

Ostateczny zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi – kolekcji produktów i zasobów związanych z WordPress, które powinien mieć każdy profesjonalista!

Interakcje czytelników

39 CommentsLeave a Reply

  1. 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.

    • 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

  2. 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.

    • 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

  3. 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!

  4. 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

    • 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

  5. 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.

  6. 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ć

    • 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

  7. 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;`

  8. 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ę

      • 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?

  9. 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?

  10. 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

    • To samo pytanie. Czy potrzebujemy uruchomić niestandardowe zapytanie, jeśli chcemy utworzyć archiwum kategorii tego niestandardowego typu wpisu?

  11. 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’);

  12. 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

  13. 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 :)

  14. 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ę.

  15. 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?

  16. 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!

    • 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!

  17. 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ć?

  18. 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.

  19. 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.

    • 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

  20. Ś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ć?

  21. 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.

  22. Świetne wskazówki, znalazłem sposób na rozwiązanie mojego problemu dzięki temu. Dzięki!

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszą polityką komentowania, a Twój adres e-mail NIE zostanie opublikowany. Prosimy NIE używać słów kluczowych w polu nazwy. Prowadźmy osobistą i znaczącą rozmowę.