15. The WP Functions Library (IV). La Taxonomía

Una vez hemos creado nuestras fichas con el Custom Post Type y los metadatos con el metabox y los Custom Fields, vamos a permitir categorizarlas, clasificarlas, mediante una taxonomía exclusiva.

NOTA PREVIA: Para este artículo, me he basado en el artículo de DarioBF, ‘Custom Post Types y Taxonomías en WordPress, la forma correcta’, así como en el Codex de WordPress y en nuestro anterior artículo ’11. Taxonomías’ de esta misma serie.

 

La función register_taxonomy()

La creación de la taxonomía la realizaremos mediante la función register_taxonomy(). Para ello, utilizaremos un gancho de acción ‘init’.

register_taxonomy( $taxonomy, $object_type, $args )

Parámetros:

  • $taxonomy. Cadena requerida de longitud máxima 32 caracteres. El nombre de la taxonomía.
  • $object_type. Matriz o cadena requerida. El nombre del tipo de objeto para la taxonomía. Puede ser tanto un tipo pre-existente (‘post’, ‘page’, ‘attachment’, ‘revision’, ‘nav_menu_item’), como un tipo de post personalizado. También se le puede indicar expresamente ‘null’ para que no lo asocie a ningún objeto y hacerlo posteriormente de forma manual. Si se quiere indicar varios objetos, hacerlo mediante una matriz.
  • $args. Matriz o cadena opcional, en la que se le pasan argumentos a la función.

Argumentos:

  • label. Cadena opcional. Nombre descriptivo plural de la taxonomía. Por defecto tomará el campo ‘name’ de la matriz $labels.
  • $labels. Matriz opcional, compuesta por las etiquetas de la taxonomía. Se verá más adelante.
  • public. Lógico opcional. Si la taxonomía puede aparecer en una consulta pública. Por defecto, verdadero.
  • show_ui. Lógico opcional. Si se generará una interfaz de usuario para la gestión de la taxonomía. En su defecto, se toma el valor de public.
  • show_in_menu. Lógico opcional. Donde mostrar la taxonomía en el menú de administración. show_ui debe ser verdadero. Si el valor es falso, no la mostrará en el menú de administración. En caso verdadero, aparecerá como un submenú del tipo de objeto asociado. Por defecto, toma el valor de show_ui.
  • show_in_nav_menus. Lógico opcional. En caso verdadero, la taxonomía será accesible para su selección en menús de navegación. Por defecto, toma el valor del argumento public.
  • show_tagCloud. Lógico opcional. Permite utilizar la taxonomía en el widget Tag Cloud. Por defecto, toma el valor de show_ui.
  • show_in_quic_edit. Lógico opcional. Muestra la taxonomía en el panel de edición rápida. Por defecto, toma el valor de show_ui.
  • meta_box_cb. Llamada de vuelta opcional. Provee función de llamada de vuelta (callback) para mostrar el meta box. Por defecto, es null.
  • show_admin_column. Lógico opcional. Si permite la creación automática de columnas de taxonomía en las tablas de los tipos de post asociados.
  • description. Cadena opcional. Incluye una descripción de la taxonomía. Por defecto, es ”.
  • hierarchical. Lógico opcional. Si la taxonomía es jerárquica (como las categorías) o no jerárquica (como las etiquetas). Por defecto, es falso.
  • update_count_callback. Cadena opcional. El nombre de la función que será llamada cuando se actualice el contador de el tipo de objeto asociado. Trabaja como un gancho. Por defecto, none.
  • query_var. Lógico o cadena opcional. Falso para desactivar el query_var, si es cadena, ésta se utilizar como query_var personalizada, en lugar del valor por defecto de $taxonomy, que es el nombre de la taxonomía. Por defecto es $taxonomy.
  • rewrite. Lógico o matriz opcional. Si es false, previene la reescritura automática de URLs. Si se le pasa una matriz, la utilizará para reescribir los ajustes de URL para los permalinks. Por defecto es verdadero.
  • capabilities. Matriz opcional de los permisos para esta taxonomía.
  • sort. Lógico opcional. Si esta taxonomía mantendrá el orden en que los términos se añaden a los objetos.
  • _builtin. Lógico NO PARA USO GENERAL. Si esta taxonomía es nativa o creada.

Ahora, la matriz $labels:

  • ‘name’. El nombre general para la taxonomía, generalmente plural.
  • ‘singular_name’. Nombre para un objeto de la taxonomía.
  • ‘menu_name’. El texto del nombre del menú. Si no se indica, coge el valor de ‘name’.
  • ‘all_items’. El texto para ‘todos los items’.
  • ‘edit_item’. El texto para ‘editar un item’.
  • ‘view_item’. El texto para ‘ver un item’.
  • ‘update_item’. El texto para ‘actualizar item’.
  • ‘add_new_item’. El texto para ‘añadir item’.
  • ‘new_item_name’. El texto para ‘nuevo item’.
  • ‘parent_item’. El texto para ‘item padre’.
  • ‘parent_item_colon’. Lo mismo que ‘parent_item’ pero con dos puntos finales (:) (colon).
  • ‘search_items’. El texto para ‘buscar items’.
  • ‘popular_items’. El texto para ‘items populares’.
  • ‘separate_items_with_commas’. El texto ‘separar items con comas’.
  • ‘add_or_remove_items’. El texto para añadir o eliminar items.
  • ‘choose_from_most_used’. El texto para ‘items más utilizados’
  • ‘not_found’. El texto para ‘items no encontrados’.

 

La taxonomía de nuestras fichas

Es muy sencillo, a nuestras fichas denominadas ‘stmtwpfl’ en nuestro anterior artículo, ’13. Crear el Custom Post Type’, en la función register_post_type(), les vamos a vincular la taxonomía ‘clasificación’. Para ello utilizamos el gancho de acción ‘init’.

Quedando el resultado siguiente:

taxonomia-1

taxonomia-2

 

Conclusiones

A un custom post type le hemos añadido unos custom fields mediante un meta box específico, y finalmente, una taxonomía.

Ahora, será momento para dedicar un tiempo a ir introduciendo fichas en nuestro sistema e ir viendo cómo funciona, para, a continuación, ir acabando los temas que aún están pendientes. Veremos cómo se pueden crear menús de taxonomías, si se pueden hacer widgets, cómo incorporar archivos adjuntos, y cómo mostrar la información en el front-end al usuario.

Pero todo eso se verá en los próximos artículos. Un saludo.

Una respuesta a “15. The WP Functions Library (IV). La Taxonomía”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *