¿Cómo agregar etiquetas al tipo de publicación personalizada?


28

Tengo un tipo de publicación personalizado llamado portfolioy estoy tratando de agregarle la taxonomía de etiquetas, ¿cómo hago esto?


@chifliiiii si hago eso, las categorías y las etiquetas son las mismas que las utilizadas para las publicaciones. ¿Cómo obtengo categorías y etiquetas que son exclusivas del nuevo tipo de publicación?
Troy Templeman

@chifliiiii ¿Como mostrar las etiquetas en la plantilla?
Max

Respuestas:


15

Así: (donde dice "cartera" es donde registra la taxonomía en un tipo de publicación

add_action( 'init', 'create_tag_taxonomies', 0 );

//create two taxonomies, genres and tags for the post type "tag"
function create_tag_taxonomies() 
{
  // Add new taxonomy, NOT hierarchical (like tags)
  $labels = array(
    'name' => _x( 'Tags', 'taxonomy general name' ),
    'singular_name' => _x( 'Tag', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Tags' ),
    'popular_items' => __( 'Popular Tags' ),
    'all_items' => __( 'All Tags' ),
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'Edit Tag' ), 
    'update_item' => __( 'Update Tag' ),
    'add_new_item' => __( 'Add New Tag' ),
    'new_item_name' => __( 'New Tag Name' ),
    'separate_items_with_commas' => __( 'Separate tags with commas' ),
    'add_or_remove_items' => __( 'Add or remove tags' ),
    'choose_from_most_used' => __( 'Choose from the most used tags' ),
    'menu_name' => __( 'Tags' ),
  ); 

  register_taxonomy('tag','portfolio',array(
    'hierarchical' => false,
    'labels' => $labels,
    'show_ui' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array( 'slug' => 'tag' ),
  ));
}
?>

@JoeBobby probablemente valdría la pena visitar la página del Codex de WordPress para registrar taxonomías para tener una mejor idea de todas las opciones disponibles: codex.wordpress.org/Function_Reference/register_taxonomy
Stephen S.

8
Solo una nota de que esto está creando una taxonomía completamente nueva llamada 'etiqueta' en lugar de agregar la taxonomía 'post_tag' existente al tipo de publicación personalizada.
Jake

@chifliiiii cómo obtener estas etiquetas en una sola página posterior con enlaces de etiquetas, cómo crear una plantilla para la página de etiquetas
Dinesh

1
Estoy de acuerdo con Jake, siento que esto no resuelve el problema. La respuesta de @Marcus debe ser la marcada como aceptada.
Craig Wayne

58

O simplemente agregue:

'taxonomies' => array('post_tag')

Una serie de taxonomías registradas como categoryo post_tagque se utilizarán 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().

a la $argsmatriz en el functions.phparchivo donde crea el tipo de publicación personalizada con register_post_type().


2
Agregue una explicación a su respuesta: ¿por qué eso podría resolver el problema?
fuxia

5

Utilizar esta:

add_action( 'init', 'gp_register_taxonomy_for_object_type' );
function gp_register_taxonomy_for_object_type() {
    register_taxonomy_for_object_type( 'post_tag', 'portfolio' );
};

1

Método 1 (de las respuestas anteriores: https://wordpress.stackexchange.com/a/106211/38771 )

Los diferentes tipos de publicación utilizarán los mismos datos de "Etiquetas" del tipo predeterminado "publicación".

  • Beneficios

    • Todo (debería) funcionar fuera de la caja con una línea

    • Todas sus etiquetas en un solo lugar en el CMS

  • Desventajas

    • Olvídese de un CMS bien estructurado / fácil de usar: la lista de etiquetas en la página de tipos de publicación personalizada mostrará todas las etiquetas (no solo las etiquetas utilizadas en los artículos de tipo de publicación personalizada) con el recuento incorrecto ...
    • Los cambios en una etiqueta afectarán los artículos de "publicación" predeterminados, así como los artículos de tipo de publicación personalizada (Eliminar una etiqueta la elimina en ambos tipos de artículos)
    • Más difícil (posiblemente imposible) configurar cualquier funcionalidad de etiqueta distinta: diferentes descripciones, campos personalizados, imágenes, etc. (al menos no sin mucha codificación personalizada sobre el código central de Wordpress) ...

Método 2 (de las respuestas anteriores: https://wordpress.stackexchange.com/a/62263/38771 )

Diferentes tipos de publicaciones utilizan diferentes configuraciones / datos de "Etiquetas".

  • Beneficios

    • Cree una funcionalidad relacionada con etiquetas diferente / claramente distinta : plantillas frontend, capacidades, filtros de consulta, acciones)
    • Asigne diferentes datos relacionados con etiquetas : datos de campos o incluso campos personalizados
    • Administrar etiquetas mejor en CMS
      • Ejemplo : la edición / eliminación de una etiqueta de "publicación" no afectará la etiqueta (de forma similar / etiquetada) para los otros tipos de publicación
  • Compensación

    Un poco más de código para configurar

En verdad, son una forma extremadamente poderosa de agrupar varios elementos en todo tipo de formas. https://codex.wordpress.org/Taxonomies#Custom_Taxonomies


He aquí un caso para el Método 1: un gran sitio web de deportes, que cubre numerosos temas / ligas / deportes con etiquetas, por ejemplo, "NBA", "NHL", "Baloncesto", "Juegos Olímpicos", "Esteroides", "Colegio", etc. No lo hace No tiene ningún sentido duplicar y administrar lo que podrían ser +100 etiquetas y 4 tipos de publicación (tipo de publicación predeterminado y 3 tipos de publicación personalizados). En cuanto a las desventajas, si los datos de conteo de etiquetas son tan especiales, entonces se puede hacer una vista personalizada para eso. En cuanto a etiquetas personalizadas similares por tipo de publicación, no parece haber ninguna necesidad obvia por el momento (tratando de pensar en una ... necesita ejemplos).
MarsAndBack

Sí, pero no habrá enlaces permanentes de etiquetas diferentes para los diferentes tipos de publicaciones. Una etiqueta "playoffs" tendrá "/ tag / playoffs" para todos los tipos de publicaciones. Luego debe configurar reglas de reescritura o usar parámetros GET para crear diferentes enlaces permanentes ... Con una taxonomía diferente para cada tipo de publicación, cada etiqueta de "playoffs" para cada tipo de publicación tendrá su propio enlace permanente, que se puede personalizar usando la plantilla de Wordpress Jerarquía. Eso es bueno si diferentes páginas de "playoffs" son diferentes para NBA, NHL ... Trabajé en un sitio con ese nivel de personalización para taxonomías (campos personalizados, imagen de taxonomía, descripción)
PS

1
Ya veo lo que dices. Entonces, si va con diferentes taxonomías de etiquetas por CPT, ¿qué tal si lo hace así cuando agrega / edita un término en un impuesto, se cambia en otros impuestos, es decir, términos únicos sincronizados en todos los impuestos? por ejemplo, defina "Baloncesto" una vez, digamos en Publicar etiquetas de impuestos, luego una vez que presione guardar, luego "Baloncesto" también se crea de manera única en otros impuestos para CPT. Por lo tanto, ingrese / edite una etiqueta una vez, y el cambio se refleja en varios impuestos de etiqueta. Al final, obtienes la administración de etiquetas en un destino, más una situación de enlace permanente más deseable.
MarsAndBack

Sí, ese sería realmente un gran método si el sitio comparte la misma información básica de taxonomías (título) para múltiples CPT, además de ofrecer la opción de personalizar aún más estas taxonomías (campos personalizados, imágenes, etc.) para diferentes CPT. ¡Agradable!
PD

0

Solo use este código, puede ser útil

 add_action( 'init', 'create_client_tax' );
function create_client_tax() {
    register_taxonomy( 
            'client_tag', //your tags taxonomy
            'client',  // Your post type
            array( 
                'hierarchical'  => false, 
                'label'         => __( 'Tags', CURRENT_THEME ), 
                'singular_name' => __( 'Tag', CURRENT_THEME ), 
                'rewrite'       => true, 
                'query_var'     => true 
            )  
        );
}

Una versión despojada de la respuesta ya aceptada. Además, esto también agrega una taxonomía completamente nueva en lugar de usar la taxonomía 'post_tag' existente.
acidrums4
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.