Pot mai multe tipuri de postări personalizate să utilizeze aceeași taxonomie?

26 mar. 2013, 16:21:50
Vizualizări: 25.6K
Voturi: 30

Mă gândesc să reconstruiesc un site Drupal în WordPress și încă încerc să înțeleg diferențele dintre cele două sisteme - în special între CCK/câmpuri și tipurile de conținut personalizat, precum și diferitele moduri de utilizare a taxonomiei.

Aș dori să știu dacă două tipuri de conținut personalizat pot împărtăși o singură taxonomie personalizată. În Drupal, pot limita postarea unui anumit tip de conținut la un grup de utilizatori, iar acea postare poate avea o taxonomie care este partajată doar cu unul sau mai multe alte tipuri de conținut (dar nu toate tipurile).

Lăsând deoparte aspectul legat de utilizatori, care pare posibil cu Role Scoper, se poate face acest lucru în WordPress? Am văzut doar tipuri de conținut personalizat cu taxonomie personalizată, dar nicio modalitate de a partaja o anumită taxonomie între 2 sau mai multe tipuri de conținut personalizat fără a o recrea în două locuri sau a o activa global prin categorii/etichete...

Mulțumesc, -Chad.

1
Toate răspunsurile la întrebare 3
3
20

Partajarea unei taxonomii între CPT-uri

Aș dori să știu dacă două tipuri de conținut personalizat pot partaja o singură taxonomie personalizată.

Pe scurt: Da, pot.

Cum se partajează

Ar trebui să înregistrați întotdeauna taxonomiile personalizate și tipurile de posturi unul cu celălalt cât mai devreme posibil.

Încorporați procesul de înregistrare într-o funcție, conectată la hook-ul init la prioritatea implicită.

<?php
/** Plugin Name: Înregistrează $CPT și $CT */
add_action('init', function() {
    register_taxonomy(
        'taxonomie_personalizata',
        'tip_post_personalizat',
        $array_de_argumente
    );
    register_post_type(
        'tip_post_personalizat',
        [
            'taxonomies' => [ 'taxonomie_personalizata' ],
            // alte argumente
        ]
    );
}, 10 ); # <-- prioritate implicită

Nu contează dacă utilizați al 2-lea argument pentru register_taxonomy() sau dacă utilizați register_taxonomy_for_object_type(), deoarece ambele fac același lucru: Preiau array-ul $GLOBALS['wp_taxonomies'] și îl atribuie obiectului tip post.

Notă importantă

Asigurați-vă doar că înregistrați CT și CPT unul cu celălalt în momentul înregistrării lor. Altfel, nu veți avea acces la această interconexiune în timpul hook-urilor de interogare.

26 mar. 2013 16:46:32
Comentarii

O problemă pe care am descoperit-o este că administratorul nu afișează corect numărul de articole pentru un CPT odată ce CT-ul partajat este folosit în altă parte.

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

Nu sunt sigur dacă am înțeles corect. Întrebarea se referă la înregistrarea unui CT la mai multe CPT-uri. Acest răspuns pare să ilustreze înregistrarea reciprocă a unui CPT și a unui CT între ele în ambele sensuri.

That Brazilian Guy That Brazilian Guy
16 ian. 2019 05:03:22

@ThatBrazilianGuy Da, răspunsul face asta. Din mai multe motive. Vă rugăm să citiți răspunsul în detaliu.

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

Am reușit să realizez acest lucru cu ușurință prin transmiterea unui array cu toate tipurile de postări personalizate (Custom Post Types) cărora doresc să le atribui taxonomia. Codul meu arăta astfel:

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' => 'Titlul Taxonomiei Personalizate', 'query_var' => true, 'rewrite' => true ) );   
}
31 mar. 2017 16:11:36
Comentarii

Acesta ar trebui să fie răspunsul acceptat, după părerea mea. Concis și la obiect.

FaCE FaCE
21 iun. 2019 14:33:00
0

Din Codex:

taxonomii

(array) (opțional) Un array de taxonomii înregistrate, cum ar fi categoria sau eticheta postului, care vor fi utilizate cu acest tip de postare. Aceasta poate fi folosită în locul apelării directe a funcției register_taxonomy_for_object_type(). Taxonomiile personalizate încă trebuie să fie înregistrate cu register_taxonomy().

Când înregistrezi tipul tău de postare, atribui taxonomiile pe care le suportă sau folosește register_taxonomy_for_object_type() la un alt moment pentru a adăuga taxonomia la tipul de postare.

Poți atribui o taxonomie la câte tipuri de postare dorești. Taxonomiile nu sunt legate de un anumit tip de postare.

26 mar. 2013 16:33:42