Più tipi di post personalizzati possono condividere una tassonomia personalizzata?


23

Sto pensando di ricostruire un sito di drupal in wordpress e sto ancora avvolgendo la mia testa intorno alle differenze tra i sistemi - in particolare cck / field e tipi di contenuto personalizzati e i diversi modi di usare la tassonomia.

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

Tralasciando l'aspetto dell'utente che appare possibile con il ruolo scoper, puoi farlo con wordpress? Ho visto solo un tipo di contenuto personalizzato con tassonomia personalizzata, ma non ho modo di condividere una determinata tassonomia tra 2 o più tipi di contenuto personalizzati senza ricrearlo in due posizioni o abilitarlo a livello globale attraverso categorie / tag ...

Grazie, -Chad.

Risposte:


15

Condivisione di una tassonomia tra CPT

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

Semplice ha detto: Sì, possono .

Come condividere

Come elaborerò in dettaglio in questo post del blog , dovresti sempre registrare tassonomie personalizzate e tipi di post tra loro il più presto possibile.

Avvolgi il processo di registrazione in una funzione, agganciata al initgancio con la priorità predefinita.

register_taxonomy(
    'some_custom_tax',
    'some_post_type',
    $array_of_arguments
);
register_post_type(
    'some_post_type',
    [
        'taxonomies' => [ 'some_custom_tax' ],
        // other arguments
    ]
);

Non importa se si utilizza il 2 ° argomento per register_taxonomy()o se si utilizza register_taxonomy_for_object_type(), in quanto entrambi fanno lo stesso: prendono la $GLOBALS['wp_taxonomies']matrice e assegna l'oggetto tipo di messaggio (tipo).

Nota importante

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


2
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

Non sono sicuro di seguirlo. La domanda si pone sulla registrazione di un CT a più CPT. Questa risposta sembra raffigurare la registrazione reciproca di un CPT e un CT in entrambi i modi.
Quel ragazzo brasiliano il

4

Dal codice:

tassonomie

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

Quando registri il tuo tipo di post assegni le tassonomie che supporta, o usi register_taxonomy_for_object_type()in qualche altro punto per aggiungere la tassonomia al tipo di post.

Puoi assegnare una tassonomia a tutti i tipi di post che desideri. Le tassonomie non sono legate a un particolare tipo di posta.


4

Sono stato in grado di raggiungere questo obiettivo facilmente passando array di tutti i tipi di posta personalizzati che voglio condividere la tassonomia, quindi il mio codice sembrava 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' => 'Custom Tax Title', 'query_var' => true, 'rewrite' => true ) );   
}

Questa dovrebbe essere la risposta accettata IMO. Conciso e al punto.
FaCE,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.