Tutorial WordPress affidabili, quando ne hai più bisogno.
Guida per principianti a WordPress
WPB Cup
25 Milioni+
Siti web che utilizzano i nostri plugin
16+
Anni di esperienza con WordPress
3000+
Tutorial WordPress di esperti

Come aggiungere categorie a un tipo di post personalizzato in WordPress

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.

Fortunatamente, abbiamo trovato alcune soluzioni semplici a questo problema durante i nostri anni di lavoro su siti web WordPress.

In questo articolo, ti mostreremo come aggiungere categorie a un tipo di post personalizzato in WordPress.

Aggiungere categorie ai tipi di post personalizzati in WordPress

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 a post e pagine, anche questi tipi di post personalizzati possono avere le proprie tassonomie come categorie e tag.

Ad esempio, se pubblichi recensioni di film, potresti voler creare un tipo di post personalizzato per 'Film'.

Potresti anche aver bisogno di organizzare i tuoi film in argomenti appropriati, per questo avrai bisogno di una tassonomia personalizzata. Puoi creare una tassonomia chiamata genere.

Tuttavia, cosa succederebbe se volessi usare le stesse categorie che usi per i tuoi post del blog con il tipo di post Film?

Questo è il momento in cui devi abilitare le categorie per il tuo tipo di post personalizzato. Ciò ti consentirebbe di utilizzare le stesse categorie sia per i tuoi post del blog che per il tuo tipo di post personalizzato.

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

Modifica dei tipi di post con il plugin CPT UI

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.

Attiva le categorie per un tipo di post personalizzato in WordPress

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.

Categoria aggiunta a un tipo di post personalizzato

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, un plugin specifico per il sito, o in un plugin per snippet di codice, allora dovrai modificare il codice per aggiungere le categorie 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 un'altra tassonomia personalizzata al suo interno. Se è così, 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 'Posts'.

Tipo di post mancante

Per visualizzare i tuoi custom post type sulla stessa pagina di categoria dei tuoi post predefiniti, devi aggiungere questo codice al file functions.php del tuo tema o in un plugin per 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.

Ti consigliamo di aggiungere questo codice utilizzando WPCode, il miglior plugin per snippet di codice sul mercato. WPCode rende sicuro e facile aggiungere codice personalizzato in WordPress senza modificare il file functions.php del tuo tema.

WPCode

To get started, you need to install and activate the free WPCode plugin. If you need help, see our tutorial on how to install a WordPress plugin.

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.

Aggiungi un nuovo snippet di codice personalizzato in WPCode

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

Seleziona Snippet PHP come tipo di codice

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.

Then, simply paste the code from above into the ‘Code Preview’ box.

Incolla il codice 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.

Attiva e salva il tuo snippet di codice personalizzato

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

Tipo di post visualizzato nella pagina archivio categorie

You can use the same methods to add tags to your custom post types as well. See our guide on categories vs. tags to learn more.

Guide esperte sulle categorie in WordPress

Want to learn more about using categories in WordPress? Check out these tutorials:

Speriamo che questo articolo ti abbia aiutato a imparare come aggiungere categorie al tuo custom post type in WordPress. Potresti anche voler consultare 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 anche trovarci su Twitter e Facebook.

Dichiarazione: Il nostro contenuto è supportato dai lettori. Ciò significa che se fai clic su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come è finanziato WPBeginner, perché è importante e come puoi supportarci. Ecco il nostro processo editoriale.

Il Toolkit WordPress Definitivo

Ottieni l'accesso GRATUITO al nostro toolkit - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Interazioni del lettore

39 CommentsLeave a Reply

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

    • 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

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

    • 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

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

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

    • 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

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

  6. hey! my default posts category list shows in custom post type category list

    please help me to correct it

    • 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

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

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

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

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

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

    • Stessa domanda. Dobbiamo eseguire una query personalizzata se vogliamo creare un archivio di categorie di quel tipo di post personalizzato?

  11. come gestisci il widget della barra laterale Post recenti che elenca anche la voce di menu?

    $post_type = array(‘nav_menu_item’, ‘post’, ‘movies’);

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

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

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

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

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

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

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

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

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

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

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

Lascia un commento

Grazie per aver scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra politica sui commenti, e il tuo indirizzo email NON verrà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.