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

17

J'envisage de reconstruire un site Drupal dans WordPress et je suis tout de même 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 façons d'utiliser la taxonomie.

Je voudrais savoir si deux types de contenu personnalisés 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).

Laissant 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 il n’était pas possible 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.

    
posée Chad Dupuis 26.03.2013 - 15:21

3 réponses

12

Partage d'une taxonomie entre les CPT

  

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

Simple a dit: Oui, ils peuvent .

Comment partager

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

Enveloppez votre processus d'inscription dans une fonction lié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
    ]
);

Cela n'a pas d'importance si vous utilisez l'argument 2 nd pour register_taxonomy() ou si vous utilisez register_taxonomy_for_object_type() , car les deux font la même chose: ils prennent le tableau $GLOBALS['wp_taxonomies'] et l'assignent l'objet post type (type).

Remarque 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.

    
réponse donnée kaiser 26.03.2013 - 15:46
2

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é au lieu d'appeler register_taxonomy_for_object_type() directement. Les taxonomies personnalisées doivent toujours être enregistrées auprès de register_taxonomy() .

Lorsque vous enregistrez votre type de message, vous affectez les taxonomies qu’il prend en charge ou utilisez register_taxonomy_for_object_type() à un autre moment. ajoutez la taxonomie au type de message.

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

    
réponse donnée s_ha_dum 26.03.2013 - 15:33
1

J'ai pu y parvenir facilement en transmettant un tableau de tous les types de publication personnalisés pour lesquels je souhaite partager la taxonomie. Mon code se présentait ainsi:

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 ) );   
}
    
réponse donnée Kevin Ochieng 31.03.2017 - 15:11

Lire d'autres questions sur les étiquettes