I custom post type possono condividere una tassonomia personalizzata?

26 mar 2013, 16:21:50
Visualizzazioni: 25.6K
Voti: 30

Sto valutando di ricostruire un sito Drupal in WordPress e sto ancora cercando di capire le differenze tra i due sistemi - in particolare CCK/fields, i tipi di contenuto personalizzati e i diversi modi di utilizzare la tassonomia.

Vorrei sapere se due tipi di contenuto personalizzati possono condividere una singola tassonomia personalizzata. In Drupal posso limitare la pubblicazione di un particolare tipo di contenuto a un gruppo di utenti e quella pubblicazione può avere una tassonomia che è condivisa solo con uno o più altri tipi di contenuto (ma non con tutti i tipi).

Tralasciando l'aspetto utente che sembra possibile con Role Scoper, si può fare questo con WordPress? Ho visto solo tipi di contenuto personalizzati con tassonomia personalizzata ma nessun modo per condividere una determinata tassonomia tra 2 o più tipi di contenuto personalizzati senza doverla ricreare in due posti o abilitarla globalmente attraverso categorie/tag...

Grazie, -Chad.

1
Tutte le risposte alla domanda 3
3
20

Condividere una tassonomia tra CPT personalizzati

Vorrei sapere se due tipi di contenuto personalizzati possono condividere una tassonomia personalizzata.

In parole semplici: Sì, possono.

Come condividere

Dovresti sempre registrare le tassonomie personalizzate e i tipi di post l'uno all'altro il prima possibile.

Incorpora il tuo processo di registrazione in una funzione, agganciata all'hook init con la priorità predefinita.

<?php
/** Plugin Name: Registra $CPT e $CT */
add_action('init', function() {
    register_taxonomy(
        'some_custom_tax',
        'some_post_type',
        $array_of_arguments
    );
    register_post_type(
        'some_post_type',
        [
            'taxonomies' => [ 'some_custom_tax' ],
            // altri argomenti
        ]
    );
}, 10 ); # <-- priorità predefinita

Non importa se usi il 2° argomento per register_taxonomy() o se usi register_taxonomy_for_object_type(), poiché entrambi fanno la stessa cosa: Prendono l'array $GLOBALS['wp_taxonomies'] e lo assegnano all'oggetto tipo di post.

Nota importante

Assicurati solo di registrare la CT e il CPT l'uno all'altro al momento della registrazione. Altrimenti non avrai accesso a quell'interconnessione durante gli hook di query.

26 mar 2013 16:46:32
Commenti

Un problema che ho riscontrato è che l'amministratore non visualizza correttamente il numero di post per un CPT una volta che il CT condiviso viene utilizzato altrove.

Meetai.com Meetai.com
6 mar 2014 09:23:13

Non sono sicuro di aver capito. La domanda riguarda la registrazione di un CT a più CPT. Questa risposta sembra mostrare la registrazione di un CPT e un CT l'uno all'altro in entrambi i sensi.

That Brazilian Guy That Brazilian Guy
16 gen 2019 05:03:22

@ThatBrazilianGuy Sì, la risposta lo fa. Per molteplici motivi. Per favore leggi la risposta in dettaglio.

kaiser kaiser
21 apr 2020 01:04:54
1
15

Ho potuto ottenere questo facilmente passando un array di tutti i Custom Post Type con cui voglio condividere la tassonomia, quindi il mio codice era così:

add_action( 'init', 'build_taxonomies', 0 );
function build_taxonomies() {
    register_taxonomy( 'some_custom_tax', array('some_post_type_1','some_post_type_2'), array( 'hierarchical' => true, 'label' => 'Titolo Tassonomia Personalizzata', 'query_var' => true, 'rewrite' => true ) );
}
31 mar 2017 16:11:36
Commenti

Questa dovrebbe essere la risposta accettata secondo me. Concisa e diretta al punto.

FaCE FaCE
21 giu 2019 14:33:00
0

Dal Codex:

taxonomies

(array) (opzionale) Un array di tassonomie registrate come category o post_tag che verranno utilizzate con questo post type. Questo può essere usato al posto di chiamare direttamente register_taxonomy_for_object_type(). Le tassonomie personalizzate devono comunque essere registrate con register_taxonomy().

Quando registri il tuo post type, puoi assegnare le tassonomie che supporta, oppure usare register_taxonomy_for_object_type() in un secondo momento per aggiungere la tassonomia al post type.

Puoi assegnare una tassonomia a quanti post type desideri. Le tassonomie non sono vincolate a un particolare post type.

26 mar 2013 16:33:42