Pregunta:
Estoy considerando reconstruir un sitio de drupal en wordpress y todavía estoy pensando en las diferencias entre los sistemas, particularmente cck / fields y tipos de contenido personalizado 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 en 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 con todos los tipos).
Dejando fuera el aspecto del usuario que parece posible con el rol de scoper, ¿puedes hacer esto con wordpress? Solo he visto tipo de contenido personalizado con taxonomía personalizada, pero no hay forma de compartir una taxonomía determinada 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.
Respuesta:
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
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 gancho de init
con la prioridad predeterminada.
<?php
/** Plugin Name: Register $CPT and $CT */
add_action('init', function() {
register_taxonomy(
'some_custom_tax',
'some_post_type',
$array_of_arguments
);
register_post_type(
'some_post_type',
[
'taxonomies' => [ 'some_custom_tax' ],
// other arguments
]
);
}, 10 ); # <-- default priority
No importa si se utiliza el argumento de 2º de register_taxonomy()
o si utiliza register_taxonomy_for_object_type()
, ya que ambos hacen lo mismo: toman los $GLOBALS['wp_taxonomies']
matriz y asignarle el objeto de tipo post (Tipo ).
Nota IMPORTANTE
Solo asegúrese de registrar el CT y el CPT entre sí en cuando los registre. De lo contrario, no tendrá acceso a esa interconexión durante los enlaces de consulta.