Agregar soporte de taxonomía de categoría a tipo de publicación personalizada

2

Estoy escribiendo un código que hace un uso extensivo de los tipos de publicaciones personalizadas, y estoy buscando un medio para agregar mediante programación una categoría a un tipo de publicación personalizada definida y luego acceder a su ID de categoría.

Tuve un empujón, pero no puedo encontrar un medio sólido para lograrlo: wp_create_category sería la opción obvia, pero por supuesto esto no es compatible con los tipos de publicaciones personalizadas.

    
pregunta George Pearce 02.04.2012 - 16:03

3 respuestas

2

si necesita crear previamente algunos términos, puede agregar lo siguiente a la función init que registra la taxonomía. creará el término foo en la taxonomía de grabaciones

if (!term_exists( 'foo', 'recordings') ){
        wp_insert_term( 'foo', 'recordings' );
    })
    
respondido por el helgatheviking 02.04.2012 - 17:27
5

Dentro de su register_post_type puede agregar el parámetro taxonomies .

register_post_type('discography',
    array(
    'labels' => array(
             //your label stuff
             ),

  'taxonomies' => array('recordings', 'category', 'whatever'),  //add this....

  'public' => true,
  'show_ui' => true,
  'exclude_from_search' => true,
  'hierarchical' => true,
  'supports' => array( 'title', 'editor', 'thumbnail' ),
  'query_var' => true
        )
  );

Alternativamente, puedes usar register_taxonomy_for_object_type , enlace

    
respondido por el Wyck 02.04.2012 - 17:07
1

Por favor, coloque este código en theme functions.php

function post_type_discog() {

register_post_type('discography',
    array(
    'labels' => array(
            'name' => __( 'Discography' ),
            'singular_name' => __( 'Discography' ),
            'add_new' => __( 'Add New' ),
            'add_new_item' => __( 'Add New Discography' ),
            'edit' => __( 'Edit' ),
            'edit_item' => __( 'Edit Discography' ),
            'new_item' => __( 'New Discography' ),
            'view' => __( 'View Discography' ),
            'view_item' => __( 'View Discography' ),
            'search_items' => __( 'Search Discographys' ),
            'not_found' => __( 'No Discographys found' ),
            'not_found_in_trash' => __( 'No Discographys found in Trash' ),
            'parent' => __( 'Parent Discography' ),
        ),
  'public' => true,
  'show_ui' => true,
        'exclude_from_search' => true,
        'hierarchical' => true,
        'supports' => array( 'title', 'editor', 'thumbnail' ),
        'query_var' => true
        )
  );
}
add_action('init', 'post_type_discog');

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

function create_discog_taxonomies()
{
  // Add new taxonomy, make it hierarchical (like categories)
  $labels = array(
    'name' => _x( 'Recordings', 'taxonomy general name' ),
    'singular_name' => _x( 'Recording', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Recordings' ),
    'popular_items' => __( 'Popular Recordings' ),
    'all_items' => __( 'All Recordings' ),
    'parent_item' => __( 'Parent Recording' ),
    'parent_item_colon' => __( 'Parent Recording:' ),
    'edit_item' => __( 'Edit Recording' ),
    'update_item' => __( 'Update Recording' ),
    'add_new_item' => __( 'Add New Recording' ),
    'new_item_name' => __( 'New Recording Name' ),
  );
  register_taxonomy('recordings',array('discography'), array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'recordings' ),
  ));
}

En este código, u puede crear un tipo de publicación personalizada y un tipo de categoría personalizada. Que este código sea útil para usted.

    
respondido por el Arvind Pal 02.04.2012 - 16:14

Lea otras preguntas en las etiquetas