¿Pueden varios tipos de publicaciones personalizadas compartir una taxonomía personalizada?

23

Estoy considerando reconstruir un sitio drupal en WordPress y todavía estoy pensando en las diferencias entre los sistemas, particularmente cck / fields y tipos de contenido personalizados y las diferentes formas de usar la taxonomía.

Me gustaría saber si dos tipos de contenido personalizado pueden compartir una taxonomía personalizada. En drupal puedo limitar la publicación de un tipo de contenido particular a un grupo de usuarios y luego esa publicación puede tener una taxonomía que solo se comparte con uno o más tipos de contenido (pero no todos los tipos).

Dejando de lado el aspecto del usuario que parece posible con role scoper, ¿puedes hacer esto con wordpress? Solo he visto un tipo de contenido personalizado con taxonomía personalizada, pero no hay forma de compartir una taxonomía dada entre 2 o más tipos de contenido personalizado sin recrearlo en dos lugares o habilitarlo globalmente a través de categorías / etiquetas ...

Gracias, Chad.

Chad Dupuis
fuente

Respuestas:

15

Compartir una taxonomía entre CPT

Me gustaría saber si dos tipos de contenido personalizado pueden compartir una taxonomía personalizada.

Simple dijo: sí, pueden .

Como compartir

Como detallo en esta publicación de blog , siempre debe registrar taxonomías personalizadas y tipos de publicaciones entre sí lo antes posible.

Envuelva su proceso de registro en una función, enganchada al initgancho en la prioridad predeterminada.

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

No importa si se utiliza la 2 ª argumento a favor register_taxonomy()o si se utiliza register_taxonomy_for_object_type(), ya que ambos hacen lo mismo: toman la $GLOBALS['wp_taxonomies']matriz y la asigna el objeto de tipo post (Tipo).

Nota IMPORTANTE

Solo asegúrese de registrar el CT y el CPT entre sí cuando los registre. De lo contrario, no tendrá acceso a esa interconexión durante los enlaces de consulta.

emperador
fuente
2
Un problema que he encontrado es que el administrador no muestra correctamente el número de publicaciones para un CPT una vez que el CT compartido se usa en otro lugar.
Meetai.com
No estoy seguro si lo sigo. La pregunta se refiere al registro de una TC en múltiples CPT. Parece que esta respuesta representa el registro de un CPT y un CT entre sí en ambos sentidos.
Ese chico brasileño
4

Del Codex:

taxonomías

(matriz) (opcional) Una matriz de taxonomías registradas como categoría o post_tag que se utilizará con este tipo de publicación. Esto se puede usar en lugar de llamar register_taxonomy_for_object_type()directamente. Las taxonomías personalizadas aún deben registrarse register_taxonomy().

Cuando registra su tipo de publicación, asigna las taxonomías que admite, o usa register_taxonomy_for_object_type()en algún otro punto para agregar la taxonomía al tipo de publicación.

Puede asignar una taxonomía a tantos tipos de publicaciones como desee. Las taxonomías no están vinculadas a un tipo de publicación particular.

s_ha_dum
fuente
4

Pude lograr esto fácilmente al pasar la matriz de todos los tipos de publicaciones personalizadas que quiero compartir la taxonomía, por lo que mi código se veía así:

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
fuente
Esta debería ser la respuesta aceptada de la OMI. Concisa y al grano.
FaCE