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

23

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

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

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

Obrigado, -Chad.

Chad Dupuis
fonte

Respostas:

15

Compartilhando uma taxonomia entre CPTs

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

Simples disse: Sim, eles podem .

Como compartilhar

Conforme elaborado em detalhes nesta postagem do blog , você deve sempre registrar taxonomias personalizadas e tipos de postagem entre si o mais cedo possível.

Envolva seu processo de registro em uma função, conectada ao initgancho 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ê usar a 2 nd argumento para register_taxonomy()ou se você usa register_taxonomy_for_object_type(), pois ambos fazem a mesma: Eles tomam o $GLOBALS['wp_taxonomies']array e atribuir a ele o objeto do tipo de pós (tipo).

Nota importante

Apenas certifique-se de registrar o CT e o CPT um ao outro em quando registrá-los. Caso contrário, você não terá acesso a essa interconexão durante os ganchos de consulta.

kaiser
fonte
2
Um problema que encontrei é que o administrador não exibe corretamente o número de postagens para um CPT depois que o CT compartilhado é usado em outro lugar.
Meetai.com
Não tenho certeza se eu sigo. A pergunta é sobre o registro de um CT em vários CPTs. Essa resposta parece que mostra o registro de um CPT e um CT entre si nos dois sentidos.
Aquele cara brasileiro
4

Do Codex:

taxonomias

(matriz) (opcional) Uma matriz de taxonomias registradas, como categoria ou post_tag, que serão usadas com esse tipo de postagem. Isso pode ser usado no lugar de chamar register_taxonomy_for_object_type()diretamente. As taxonomias personalizadas ainda precisam ser registradas register_taxonomy().

Ao registrar seu tipo de postagem, você atribui as taxonomias suportadas ou usa-as register_taxonomy_for_object_type()em outro ponto para adicionar a taxonomia ao tipo de postagem.

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

s_ha_dum
fonte
4

Consegui fazer isso facilmente passando a matriz de todos os tipos de post personalizados que quero compartilhar a taxonomia. Portanto, 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 ) );   
}
Kevin Ochieng
fonte
Esta deve ser a resposta aceita IMO. Conciso e ao ponto.
FaCE