Marketing Digital / Web

Custom Post Types y Taxonomías de WordPress

WordPress puede almacenar y mostrar diferentes tipos de contenido. Un solo elemento de un contenido, generalmente se llama un post, y uno especifico como post-type. Internamente, todos los post-type se almacenan en el mismo lugar, en la tabla de base de datos wp_posts, pero se diferencian por una columna llamada post_type.

Puedes revisar la información completa sobre los post_types en el codex de wordpress.

¿Qué son los custom post types?

Los Custom Post Types son tipos de entrada personalizados que puedes agregar a tu WordPress. Por ejemplo, WordPress por defecto trae como tipo de entrada:

  • Entradas
  • Páginas
  • Adjuntos
  • Revisión
  • Menú de navegación

Etiquetas (Labels) para los tipos de entrada

Las etiquetas para los custom post types y las taxonomías son muy importante porque ayudan a diferenciar los custom post types de otras herramientas que trae WordPress por defecto. Si se no utilizas etiquetas para cambiar esta parte y saber qué estas editando, automáticamente pondrá por defecto “Entrada” para los tipos de entrada y “Categoría” o “Etiqueta” para las taxonomías ya sean jerárquicas o no, respectivamente.

Configurando las etiquetas para mostrar el Custom Post Type

El siguiente código irá en el functions.php de nuestro tema:

// La función no será utilizada antes del 'init'.
add_action( 'init', 'my_custom_init' );
/* Here's how to create your customized labels */
function my_custom_init() {
 $labels = array(
 'name' => _x( 'Libros', 'post type general name' ),
 'singular_name' => _x( 'Libro', 'post type singular name' ),
 'add_new' => _x( 'Añadir nuevo', 'book' ),
 'add_new_item' => __( 'Añadir nuevo Libro' ),
 'edit_item' => __( 'Editar Libro' ),
 'new_item' => __( 'Nuevo Libro' ),
 'view_item' => __( 'Ver Libro' ),
 'search_items' => __( 'Buscar Libros' ),
 'not_found' => __( 'No se han encontrado Libros' ),
 'not_found_in_trash' => __( 'No se han encontrado Libros en la papelera' ),
 'parent_item_colon' => ''
 );
 
 // Creamos un array para $args
 $args = array( 'labels' => $labels,
 'public' => true,
 'publicly_queryable' => true,
 'show_ui' => true,
 'query_var' => true,
 'rewrite' => true,
 'capability_type' => 'post',
 'hierarchical' => false,
 'menu_position' => null,
 'menu_icon'  => 'dashicons-products',
 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
 );
 
 register_post_type( 'libro', $args ); /* Registramos y a funcionar */
}

Puedes para personalizar el menu-icon del nuevo post-type puedes revisar la lista de dashicons de wordpress en el siguiente enlace