web-dev-qa-db-fra.com

Plusieurs types de publication personnalisés peuvent-ils partager une taxonomie personnalisée?

J'envisage de reconstruire un site Drupal dans Wordpress et je suis toujours en train de comprendre les différences entre les systèmes - en particulier les champs cck/fields et les types de contenu personnalisé, ainsi que les différentes manières d'utiliser la taxonomie.

Je voudrais savoir si deux types de contenu personnalisé peuvent partager une taxonomie personnalisée. Dans drupal, je peux limiter la publication d'un type de contenu particulier à un groupe d'utilisateurs. Cette publication peut alors avoir une taxonomie partagée uniquement avec un ou plusieurs autres types de contenu (mais pas tous les types).

En laissant de côté l'aspect utilisateur qui semble possible avec role scoper, pouvez-vous le faire avec wordpress? Je n'ai vu que des types de contenu personnalisés avec une taxonomie personnalisée, mais je ne trouve aucun moyen de partager une taxonomie donnée entre deux types de contenu personnalisés sans la recréer à deux endroits ou l'activer globalement via des catégories/balises ...

Merci, -Chad.

19
Chad Dupuis

Partage d'une taxonomie entre les CPT

Je voudrais savoir si deux types de contenu personnalisé peuvent partager une taxonomie personnalisée.

Simple dit: Oui, ils peuvent .

Comment partager

Comme je l'explique en détail dans cet article de blog , vous devez enregistrez toujours les taxonomies personnalisées et les types de messages entre eux le plus tôt possible.

Enveloppez votre processus d'inscription dans une fonction, rattachée au crochet init avec la priorité par défaut.

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

Peu importe si vous utilisez le 2dakota du Nord argument pour register_taxonomy() ou si vous utilisez register_taxonomy_for_object_type(), comme les deux font la même chose: ils prennent le tableau $GLOBALS['wp_taxonomies'] et lui attribuent l'objet de type publication (type).

Note importante

Assurez-vous simplement que vous enregistrez le CT et le CPT l'un à l'autre lors de leur enregistrement. Sinon, vous n'aurez pas accès à cette interconnexion lors des hooks de requête.

12
kaiser

Du Codex:

taxonomies

(array) (facultatif) Un tableau de taxonomies enregistrées telles que category ou post_tag qui sera utilisé avec ce type de publication. Ceci peut être utilisé à la place d'appeler directement register_taxonomy_for_object_type(). Les taxonomies personnalisées doivent encore être enregistrées avec register_taxonomy() .

Lorsque vous enregistrez votre type de publication, vous affectez les taxonomies prises en charge ou utilisez register_taxonomy_for_object_type() à un autre moment pour ajouter la taxonomie au type de publication.

Vous pouvez affecter une taxonomie à autant de types de publication que vous le souhaitez. Les taxonomies ne sont pas liées à un type de message particulier.

4
s_ha_dum

J'ai pu y parvenir facilement en passant en revue tous les types de publication personnalisés que je souhaite partager avec la taxonomie. Mon code ressemblait à ceci:

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 ) );   
}
2
Kevin Ochieng