Creare una categoria solo per un tipo di post personalizzato

16 nov 2014, 21:51:02
Visualizzazioni: 55.4K
Voti: 16

Salve, Sto creando il mio tipo di post personalizzato utilizzando il seguente codice:

add_action( 'init', 'create_team_post_type' );
function create_team_post_type() {
  register_post_type( 'team',
    array(
      'labels' => array(
        'name' => __( 'Teams' ),
        'singular_name' => __( 'Team' )
      ),
        'publicly_queryable' => true,
        'show_ui' => true,
        'query_var' => true,
        'rewrite' => true,
        'capability_type' => 'post',
        'hierarchical' => false,
        'menu_position' => null,
        'taxonomies' => array('category'),
        'supports' => array('title','editor','thumbnail')
    )
  );
}

In questo codice sto permettendo una categoria. Quando clicco sulla categoria vedo quelle già elencate dalle categorie dei miei post. Vorrei mostrare solo le categorie per questo tipo di post personalizzato. Inoltre, quando aggiungo una nuova categoria al tipo di post personalizzato, voglio che si applichi solo a questo tipo di post personalizzato. Come posso fare questo?

0
Tutte le risposte alla domanda 1
5
22

Direi che è necessario creare anche una tassonomia personalizzata se vuoi che sia limitata a un solo tipo di post. "Categorie" è già collegato ai post per impostazione predefinita.

Dal WordPress Codex

function people_init() {
    // crea una nuova tassonomia
    register_taxonomy(
        'people',
        'post',
        array(
            'label' => __( 'Persone' ),
            'rewrite' => array( 'slug' => 'persona' ),
            'capabilities' => array(
                'assign_terms' => 'edit_guides',
                'edit_terms' => 'publish_guides'
            )
        )
    );
}
add_action( 'init', 'people_init' );

Quindi, se la chiamassi "team-category", dovresti usarla nell'array 'taxonomies' nel tuo tipo di post.

Ecco un esempio più specifico:

function tr_create_my_taxonomy() {

    register_taxonomy(
        'team-category',
        'team',
        array(
            'label' => __( 'Categoria' ),
            'rewrite' => array( 'slug' => 'team-category' ),
            'hierarchical' => true,
        )
    );
}
add_action( 'init', 'tr_create_my_taxonomy' );
16 nov 2014 22:09:22
Commenti

Sembra buono. Come posso visualizzare la mia tassonomia personalizzata nel custom post? Ho provato a cambiare 'taxonomies' => array('category') in 'taxonomies' => array('people') ma non mostra quelle categorie.

user1048676 user1048676
16 nov 2014 22:20:17

Assicurati di cambiare 'post' in 'team' nel codice di esempio se è lì che vuoi che appaia.

SkyShab SkyShab
16 nov 2014 22:24:17

Credo di dover essere più chiaro. Compare lì, ma quando aggiungo un nuovo post nel custom post type vorrei che apparisse come caselle di spunta come nel post type standard. Al momento mi mostra solo una casella come i tag invece delle categorie personalizzate.

user1048676 user1048676
16 nov 2014 22:28:19

Se vuoi uno stile 'a categorie', imposta hierarchical a true. L'impostazione predefinita, false, mostra uno stile 'a tag'. Ho aggiunto la prima opzione nel mio ultimo esempio di codice.

SkyShab SkyShab
16 nov 2014 22:37:03

Per visualizzare la tassonomia personalizzata nell'editor di pagine Gutenberg, aggiungi 'show_in_rest' => true alle opzioni di register_taxonomy.

Fabian von Ellerts Fabian von Ellerts
15 nov 2019 12:45:36