Uno dei nostri lettori ci ha recentemente contattato chiedendo modi per aggiungere categorie a un tipo di post personalizzato in WordPress.
Le categorie sono una delle tassonomie integrate in WordPress, principalmente per i post del blog. Tuttavia, non appaiono automaticamente nei tipi di post personalizzati, il che limita le tue opzioni organizzative.
La buona notizia? Aggiungere categorie ai tipi di post personalizzati è semplice una volta che sai come fare.
Fortunatamente, abbiamo trovato alcune soluzioni semplici a questo problema negli anni in cui abbiamo lavorato su siti WordPress. In questo articolo, ti mostreremo come aggiungere categorie a un tipo di post personalizzato in WordPress utilizzando un plugin adatto ai principianti o codice personalizzato.
Alla fine, sarai in grado di organizzare tutti i tuoi tipi di contenuto utilizzando il tuo sistema di categorie esistente, mantenendo il tuo sito pulito e facile da gestire.

Quando potresti aver bisogno di aggiungere categorie a un tipo di post personalizzato?
WordPress consente agli sviluppatori di plugin e ai proprietari di siti Web di creare i propri tipi di contenuto. Simili ai post e alle pagine, anche questi tipi di post personalizzati possono avere le proprie tassonomie come categorie e tag.
Ecco uno scenario comune: Supponiamo che tu pubblichi recensioni di film e desideri creare un tipo di post personalizzato chiamato 'Film' per tenerli separati dai tuoi normali post del blog.
Normalmente, creeresti una tassonomia personalizzata chiamata "Genere" per organizzare i tuoi film per Azione, Commedia, Dramma, ecc. Ciò funziona bene se i tuoi film sono completamente separati dai contenuti del tuo blog.
Ma cosa succede se vuoi usare le stesse categorie per entrambi? Ad esempio, potresti avere post del blog e recensioni di film che rientrano entrambi in "Intrattenimento" o "Contenuti per famiglie".
È qui che devi abilitare le categorie per il tuo tipo di post personalizzato. Invece di gestire due sistemi di tassonomia separati, puoi utilizzare le tue categorie di blog esistenti per entrambi i tipi di post.
Ecco alcuni esempi più concreti in cui questo è utile:
- Un sito di ricette che ha sia articoli di cucina che post di ricette utilizzando categorie come "Dolci" o "Pasti Veloci"
- Un sito portfolio con post del blog e vetrine di progetti, entrambi organizzati per "Web Design" o "Branding"
- Un sito educativo con piani di lezione e articoli, entrambi categorizzati per "Livello scolastico" o "Materia"
Il vantaggio? I tuoi contenuti rimangono organizzati sotto un unico sistema unificato, rendendo più facile per te gestirli e per i visitatori trovare contenuti correlati tra diversi tipi di post.
Detto questo, ora diamo un'occhiata a come aggiungere facilmente categorie a un tipo di post personalizzato in WordPress.
Aggiungere categorie a un tipo di post personalizzato con un plugin
Se sei un principiante, ti consigliamo di utilizzare il plugin Custom Post Type UI per creare tipi di post personalizzati.
Con il plugin Custom Post Type UI, hai la possibilità di associare il tuo tipo di post personalizzato a qualsiasi tassonomia integrata o personalizzata, comprese le categorie.
Innanzitutto, devi installare e attivare il plugin Custom Post Type UI. Per maggiori dettagli, consulta la nostra guida passo passo su come installare un plugin di WordPress.
Dopo l'installazione, devi visitare CPT UI » Aggiungi/Modifica tipi di post per creare un nuovo tipo di post personalizzato o modificare un tipo di post personalizzato esistente creato con il plugin.

Scorri fino in fondo dove si trovano le Opzioni di impostazione. Da lì, vedrai l'area Tassonomie.
Devi selezionare la casella accanto a categorie e salvare il tuo tipo di post personalizzato.

Non dimenticare di fare clic sul pulsante 'Salva tipo di post' per memorizzare le tue impostazioni.
Ora, puoi modificare qualsiasi contenuto sotto quel particolare tipo di post e vedrai l'opzione per selezionare le categorie nella colonna di destra nell'editor a blocchi di WordPress.

Aggiungere manualmente categorie a un tipo di post personalizzato con il codice
Se hai creato il tuo tipo di post personalizzato aggiungendo il codice nel file functions.php del tuo tema, in un plugin specifico per il sito o in un plugin di snippet di codice, dovrai modificare il codice per aggiungere la categoria come tassonomia supportata.
Tutto quello che devi fare è aggiungere questa riga negli argomenti per il tuo custom post type.
'taxonomies' => array( 'category' ),
È probabile che tu abbia già questa riga nel codice esistente per il tuo custom post type con qualche altra custom taxonomy al suo interno.
Se lo fai, allora devi solo aggiungere una virgola dopo quella e aggiungere una categoria, in questo modo:
'taxonomies' => array('topics', 'category' ),
Ecco un esempio completo di codice in cui abbiamo creato un custom post type chiamato 'Movies' con supporto per le categorie integrate.
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 );
Visualizzare più tipi di post nella pagina delle categorie
Per impostazione predefinita, le pagine delle categorie sul tuo sito WordPress visualizzeranno solo il tipo di post predefinito 'Post'.

Per visualizzare i tuoi tipi di post personalizzati nella stessa pagina di categoria dei tuoi post predefiniti, devi aggiungere questo codice al file functions.php del tuo tema o in un plugin di snippet di codice:
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;
}
}
📍 Nota: Non dimenticare di sostituire 'movies' con il nome del tuo custom post type.
Consigliamo di aggiungere questo codice utilizzando WPCode, il miglior plugin di snippet di codice sul mercato. WPCode rende sicuro e facile aggiungere codice personalizzato in WordPress senza modificare il file functions.php del tuo tema.

Per iniziare, devi installare e attivare il plugin gratuito WPCode. Se hai bisogno di aiuto, consulta il nostro tutorial su come installare un plugin di WordPress.
Once the plugin is activated, go to Code Snippets » Add Snippet from the WordPress dashboard.
From the Add Snippet page, hover your mouse over the ‘Add Your Custom Code (New Snippet)’ option and click the ‘+ Add Custom Snippet’ button.

Then, select ‘PHP Snippet’ as the code type from the list of options that appear on the screen.

Next, add a title for your snippet at the top of the page, which is just for your reference and can be anything to help you remember what the code is for.
Quindi, semplicemente incolla il codice da sopra nella casella 'Anteprima codice'.

After that, toggle the switch at the top of the page from ‘Inactive’ to ‘Active’ and click the ‘Save Snippet’ button.

You can now visit a category archive page, and it will display your entries from your custom post type.

Puoi usare gli stessi metodi per aggiungere anche i tag ai tuoi tipi di post personalizzati. Consulta la nostra guida su categorie vs. tag per saperne di più.
Guide esperte sulle categorie in WordPress
Want to learn more about using categories in WordPress? Check out these tutorials:
- Come cambiare l'ordine delle categorie in WordPress
- Come modificare, spostare ed eliminare correttamente le categorie di WordPress
- Come imporre una categoria per post in WordPress
- Come aggiungere immagini di tassonomia (icone di categoria) in WordPress
- Come convertire le categorie di WordPress in tassonomie personalizzate
- Come mostrare categorie vuote nei widget di WordPress
- How to Track WordPress Category and Tag Analytics (Easy Way)
Speriamo che questo articolo ti abbia aiutato a imparare come aggiungere categorie al tuo tipo di post personalizzato in WordPress. Potresti anche voler vedere la nostra selezione di esperti dei plugin WordPress indispensabili per far crescere il tuo sito Web, o questi suggerimenti su come aumentare il traffico del tuo blog.
Se ti è piaciuto questo articolo, iscriviti al nostro Canale YouTube per tutorial video su WordPress. Puoi trovarci anche su Twitter e Facebook.

Chandu Mullangi
Ciao, grazie per questo articolo
Il codice per visualizzare più tipi di post nella pagina delle categorie funziona bene.
Voglio visualizzare più tipi di post nella pagina dei tag, puoi condividere quel codice.
Supporto WPBeginner
Per aggiungere i tag ai tuoi custom post type, dovresti aggiungere 'post_tag' al tuo array di tassonomie, in modo che assomigli a:
‘taxonomies’ => array( ‘category’, ‘post_tag’ ),
Amministratore
Muhamad Shahzad
Come possiamo separare gli elenchi di categorie del custom post type dalle categorie dei post del blog. Ho aggiunto il codice sopra e funziona. Ma il problema è che le categorie di questo custom post type e quelle dei post del blog sono mescolate. Dovrebbero essere separate.
Supporto WPBeginner
The goal of this tutorial is to have them mix, for what you are looking for it may be best to use a different category for the custom post types for them to not appear in your category archive pages.
Amministratore
Poulomi Basu
Hello,
I used this code and it worked perfectly! The CPT shows in the post category that I chose for it.
But it doesn’t show in my blog archive. Like the default archive, which shows all posts.
How can I show it there as well?
Grazie mille!
Supporto 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/
Amministratore
Connie
Please tell me how to add a CPT-category to a menu?
I have the CPT “article” with category “car” and “truck”
I want to have a custom menu with these entries:
All – cars – trucks
I search and search and don’t find it. I see the categories in the menu-administration and I can add them to the menue, but the result of these links = blank pages
I suppose that the listed categories are meant as post-categpories and not as cpt-categpories…
Do you have a hint for me?
Connie
Supporto WPBeginner
You may want to check your screen options in the menu area to see if the custom post type is an option there for you to add that is unchecked currently
Amministratore
Vico
I’ve created a post type called products and use core wp categories,
My product url structure is mysite.com/product/skf bearing 12
My category pages show mysite.com/category/bearings
Why product url doesn’t display the Category inside the Url? Like this
mysite.com/bearings/skf bearing 12
My custom post permalink is %category%%post%
I saved the permalink but still showing the same structure
dharamjeet
hey! my default posts category list shows in custom post type category list
please help me to correct it
carlos ballin
finally works for me
thank you
Moises
Why did u add the twentythirteen in the code?
Supporto WPBeginner
Hi Moises,
Questa stringa viene utilizzata per la traduzione. Se il tuo tema supporta la traduzione, allora devi sostituirla con il text domain del tuo tema. Se non sei sicuro di cosa usare qui, chiedi al supporto del tuo tema. Puoi anche incollarla così com'è e queste stringhe verranno ignorate.
Amministratore
Brian
FYI, questo interromperà la modifica in blocco nell'area amministrativa. L'ho aggiunto a molti tipi di post e quando vado a modificare in blocco, la parte post_type della query diventa "Array" invece del tipo di post che sta cercando di modificare nell'area amministrativa.
Per aggirare questo problema, è sufficiente aggiungere questo prima di if( is_category() ):
`if ( is_admin() ) return;`
rose
Ciao, ho bisogno di aiuto.
Ho 2 CPT e non voglio che abbiano una tassonomia condivisa.
Come
CPT 1
– Tassonomia (Tipi)
– Tipo A
– Tipo B
CPT 2
– Tassonomia (Tipi)
– Tipo C
– Tipo D
Nota: Non voglio mostrare qui i tipi A&B dal CPT 1
Grazie
Supporto WPBeginner
Ciao Rose,
Quando crei le tue tassonomie, puoi nominarle in modo diverso e permettere loro di avere le stesse etichette.
Amministratore
Gabriela
Come aggiungere un secondo custom post type?
Ho provato a ripetere il codice cambiando solo i nomi dei miei CPT ma non funziona…
Qualche idea?
Arun Sathiya
Il codice per visualizzare i CPT nelle pagine delle categorie funziona alla grande, grazie! Ma c'è qualcosa che dovresti notare. L'ultimo post / post CPT taggato con un nome di categoria non viene visualizzato immediatamente in quella pagina di categoria. Viene visualizzato solo alla seconda azione simile – solo quando un altro post / post CPT viene aggiunto alla stessa categoria, il primo post appare in quella pagina di categoria. C'è una soluzione?
Sonjoe
Sto usando CPT UI. Ho creato il tipo di post personalizzato "jobs" e ho permesso le categorie. Ma queste stesse categorie sono anche nei Post. Usano le stesse categorie. È possibile che il mio tipo di post personalizzato "jobs" abbia le proprie categorie e i post classici abbiano le proprie categorie? Grazie
Rizky
Stessa domanda. Dobbiamo eseguire una query personalizzata se vogliamo creare un archivio di categorie di quel tipo di post personalizzato?
fathur
come gestisci il widget della barra laterale Post recenti che elenca anche la voce di menu?
$post_type = array(‘nav_menu_item’, ‘post’, ‘movies’);
Supporto WPBeginner
puoi rimuovere nav_menu_item
Amministratore
vivek
Thanks for the great tutorial here.
Puoi dirmi come posso mostrare post personalizzati per categoria in una pagina separata?
La pagina della categoria predefinita funziona correttamente, visualizza i post. ma quando ho provato a visualizzare i post sotto la stessa categoria in una pagina diversa, restituisce un array vuoto. Per favore, aiutami
Matthew Wright
Grazie! Questo è fantastico. Ha risolto semplicemente un problema su cui stavo lavorando con soluzioni molto più complicate (che non funzionavano).
Una domanda però, non ho mai aggiunto la dichiarazione della tassonomia quando creavo tassonomie personalizzate per i miei CPT e le tassonomie hanno sempre funzionato. Ho aggiunto solo la ‘categoria’ per vedere cosa succedeva e ha funzionato benissimo, ha aggiunto le categorie dei post al mio CPT senza effetti negativi sulle tassonomie personalizzate esistenti.
È una best practice inserire tassonomie personalizzate negli argomenti del CPT?
Thanks again for sharing
Supporto WPBeginner
Sì, se sai già che utilizzerai una tassonomia personalizzata per quel particolare tipo di post.
Amministratore
Daisy
Codice personalizzato per aggiungere categorie e sottocategorie in tipi di post personalizzati. Se scelgo $post_type = array(‘nav_menu_item’, ‘post’, ‘myPostType’); il codice per visualizzare le mie categorie visualizza solo quella categoria, ma se riutilizzo la stessa funzione per un'altra categoria non funziona. Potete darmi qualche idea?
Chris Najman
Ciao. Ho creato con successo un tipo di post personalizzato (Opera d'arte) in functions.php. Poi ho creato una tassonomia personalizzata (‘gerarchica’ => true) il che significa che posso aggiungere categorie personalizzate quando creo un nuovo post Opera d'arte.
Mi stavo chiedendo se, all'interno della stessa funzione di tassonomia personalizzata, potrei predefinire le categorie per il post Opera d'arte.
Vorrei che fossero selezionabili dall'utente solo due categorie: 1) Pittura, 2) Scultura. Non voglio che l'utente possa aggiungere altre categorie. Idealmente, l'utente sarebbe 'costretto' a scegliere una o l'altra categoria, ovvero il post non sarebbe pubblicabile a meno che non fosse stata scelta una categoria.
È possibile?
Supporto WPBeginner
È possibile creando ruoli utente personalizzati con limiti sulla creazione di categorie.
Amministratore
Mau Ferrusca
Sto aggiungendo più di una categoria a diversi tipi di post personalizzati.
Come si può aggiungere più di una nella riga:
$post_type = array(‘nav_menu_item’, ‘post’, ‘myPostType’);
?
Grazie!
Mau Ferrusca
Ho già risolto il mio problema.
Forse istintivamente, ho iniziato a elencare i miei tipi di post personalizzati come un array, ma a quanto pare tutto ciò di cui avevo bisogno era elencarli all'interno dell'oggetto $post_type, separati da virgole.
Grazie!
Eren
Hi, i have a question. I’m using a plugin as a post type and it has its own category area. I want to use my wordpress’s core categories in this plugin but couldnt able to do it so far. I used the plugin above and after that it creates 2 categories area under the plugin and when i want to show the posts under that post type with categories, it shows nothing as the plugin’s own category list is empty. I tried lots of things including manipulating the code of the plugin yet none solved my issue. Is there a way you can suggest?
Davide
Did you find any solution for this issue?
David
Has this article been updated recently to work with the current version of WP? I noticed the plugin used hasn’t been updated in over 2 years, which makes me a little hesitant to use it.
David
Scusa, lascia perdere, vedo le informazioni aggiornate.
Piyush
Grazie per l'ottimo tutorial. puoi dirmi come posso mostrare i post personalizzati per categoria in una pagina separata. Diciamo che ho un CPT "talent" e una categoria "art". Ho due post diversi, uno creato sotto il CPT "talents" e l'altro è un post generale creato sotto "posts". Entrambi i post sono assegnati alla categoria "art" (questo è comune sia per il CPT che per i post generali). Ora so che per i post generali puoi visualizzare la pagina della categoria come example.com/category/art/. Per la pagina della categoria CPT immagino che l'URL dovrebbe essere example.com/talent/art/ ma mi restituisce un errore 404.
Supporto WPBeginner
Prova ad aggiornare la struttura dei tuoi permalink. Visita semplicemente Impostazioni » Permalink e poi fai clic sul pulsante Salva modifiche senza cambiare nulla.
Amministratore
Robert
Ben fatto grazie!
Ho un paio di problemi:
– nel widget “Categorie” compaiono le Categorie dei Custom Post Types ma cliccandoci sopra restituisce un messaggio “nessun risultato trovato”.
– nel widget “Articoli Recenti” non compaiono gli Articoli dei Custom Post Type.
C’è un modo per risolvere?
Hemang Rindani
Articolo interessante. WordPress è un potente servizio di gestione di contenuti web aziendali che consente a un'azienda di avere siti web efficienti che soddisfano i propri requisiti aziendali. È facile da usare e gli strumenti intuitivi rendono lo sviluppo più semplice. Dal design reattivo alla sicurezza e all'espandibilità, WordPress CMS ha tutto, tuttavia, la ricerca degli strumenti giusti per un sito web è importante.
Aggiungere categorie ai custom post type a volte diventa una necessità per differenziare un post dall'altro, dove i metodi menzionati nell'articolo saranno utili. L'uso di un plugin sarà un metodo semplice dove anche una persona non tecnica sarà in grado di implementarlo, tuttavia con questo articolo, non credo che l'uso del codice per aggiungere questa funzionalità da parte di una persona non tecnica sarà difficile.
Grazie per aver condiviso.
Emily Johns
Ottimi consigli, ho trovato il modo di risolvere il mio problema con questo. Grazie!