Vários tipos de postagem personalizados podem compartilhar uma taxonomia personalizada?

17

Estou pensando em reconstruir um site drupal no wordpress e ainda estou enrolando as diferenças entre os sistemas - particularmente cck / fields e tipos de conteúdo personalizados e as diferentes formas de usar a taxonomia.

Gostaria de saber se dois tipos de conteúdo personalizados podem compartilhar uma taxonomia personalizada. No drupal, posso limitar a publicação de um determinado tipo de conteúdo a um grupo de usuários e, em seguida, esse lançamento pode ter uma taxonomia que é compartilhada apenas com um ou mais outros tipos de conteúdo (mas não todos os tipos).

Deixando o aspecto do usuário fora, o que parece possível com o papel scoper, você pode fazer isso com o wordpress? Eu só vi o tipo de conteúdo personalizado com taxonomia personalizada, mas não há maneira de compartilhar uma taxonomia entre dois ou mais tipos de conteúdo personalizados sem recriá-lo em dois lugares ou ativá-lo globalmente por meio de categorias / tags ...

Obrigado -Chad.

    
por Chad Dupuis 26.03.2013 / 15:21
fonte

3 respostas

12

Compartilhando uma taxonomia entre CPTs

  

Gostaria de saber se dois tipos de conteúdo personalizados podem compartilhar uma taxonomia personalizada.

O Simple disse: Sim, eles podem .

Como compartilhar

Ao elaborar detalhadamente em este post de blog , você deve sempre registrar taxonomias personalizadas e postar tipos entre si o mais cedo possível.

Quebra seu processo de registro em uma função, conectada ao gancho init na prioridade padrão.

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

Não importa se você usa o argumento 2 nd para register_taxonomy() ou se usa register_taxonomy_for_object_type() , pois os dois fazem o mesmo: eles pegam a matriz $GLOBALS['wp_taxonomies'] e a atribuem o tipo de objeto post (type).

Nota importante

Apenas certifique-se de registrar o CT e o CPT um no outro ao registrá-los. Senão você não terá acesso a essa interconexão durante os ganchos de consulta.

    
por kaiser 26.03.2013 / 15:46
fonte
2

Do códice:

  

taxonomias

     

(array) (opcional) Uma matriz de taxonomias registradas, como category ou post_tag, que serão usadas com este tipo de postagem. Isso pode ser usado em vez de chamar register_taxonomy_for_object_type() diretamente. As taxonomias personalizadas ainda precisam ser registradas com register_taxonomy() .

Ao registrar seu tipo de postagem, você atribui as taxonomias que ele suporta ou usa register_taxonomy_for_object_type() em algum outro ponto para adicione a taxonomia ao tipo de postagem.

Você pode atribuir uma taxonomia a quantos tipos de post desejar. As taxonomias não estão vinculadas a um determinado tipo de postagem.

    
por s_ha_dum 26.03.2013 / 15:33
fonte
1

Consegui alcançar isso facilmente ao passar a matriz de todos os tipos de postagens personalizados. Quero compartilhar a taxonomia. Então, meu código ficou assim:

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 ) );   
}
    
por Kevin Ochieng 31.03.2017 / 15:11
fonte