Cómo crear una taxonomía personalizada
Publicado: 2016-09-07Este es el segundo artículo de una serie de 3 partes sobre el tema de los tipos de publicaciones personalizadas (CPT). Los temas que se tratan en los otros dos artículos son:
- Tipos de publicaciones personalizadas y cómo crearlas
- Visualización de tipos de publicaciones personalizadas: plantillas y consultas
En esta publicación de blog, veremos cómo crear una taxonomía personalizada y cómo conectarla con un tipo de publicación personalizada.
¿Qué es una taxonomía personalizada?
Comencemos con solo, ¿qué es una taxonomía? Me gusta la definición oficial de WordPress: una taxonomía es una forma de agrupar cosas.
WordPress tiene 4 taxonomías predeterminadas: Categoría, Etiqueta, Categoría de enlace y Formatos de publicación. Definitivamente las más utilizadas de las cuatro son las categorías y las etiquetas. La taxonomía de categorías le permite agrupar publicaciones en categorías lógicas, que puede definir usted mismo. La taxonomía de etiquetas es muy similar, pero se puede usar con mayor libertad. Un solo grupo en una taxonomía se llama término. Cada taxonomía también tiene su página de "índice", donde se muestran todas las publicaciones del mismo término (las URL de estas páginas se ven como: 'taxonomía/término' ).
Entonces, una taxonomía personalizada es justo lo que sugiere el nombre, es su propio grupo personalizado de publicaciones (o tipos de publicaciones personalizadas). Si tuviéramos una reseña de un libro como tipo de publicación personalizada, un buen ejemplo de taxonomía personalizada serían los géneros de libros.
Solo para refrescar la memoria: en el artículo anterior sobre Tipos de publicaciones personalizadas, usamos el CPT de ejemplo de Testimonios para nuestro tema Shaka, por lo que continuaremos usándolo aquí también.
Entonces, tenemos el tipo de publicación personalizada Testimonios. ¿Qué tipo de taxonomías personalizadas querríamos? ¿Qué grupos tendrían sentido para este caso de uso? Podríamos agrupar testimonios según el servicio al que se referían. Entonces podríamos tener una taxonomía personalizada de servicios (surf, kitesurf, buceo). Otra taxonomía personalizada podría ser ubicaciones, donde los usuarios han experimentado este servicio, etc.
Puede crear una taxonomía personalizada para cada grupo lógico que se le ocurra.
¿Cómo se puede crear una taxonomía personalizada?
Al igual que con los tipos de publicaciones personalizadas, hay dos formas de registrar una taxonomía personalizada. Puede crearlo con un complemento o puede escribir un poco de código PHP.
Las razones y los casos de uso de cuándo hacerlo a través de un complemento o con código son los mismos que para los CPT, así que échale un vistazo en el primer artículo.
Aquí solo veremos cómo crear la taxonomía personalizada y cómo conectarla con el tipo de publicación personalizada.
Cree una taxonomía personalizada con un complemento: la manera fácil
Usaremos el complemento de interfaz de usuario Custom Post Type para registrar la taxonomía personalizada, tal como lo hicimos para el CPT en el artículo anterior:
- Instale y active el complemento de interfaz de usuario de tipo de publicación personalizada desde su panel de wp-admin,
- Una vez que active el complemento, el elemento del menú de administración de la interfaz de usuario de CPT estará disponible . Vaya a la interfaz de usuario de CPT -> Agregar/Editar taxonomía
- Ingrese el slug de taxonomía, el nombre plural y singular y luego debe seleccionar qué tipo de publicación adjuntar esta taxonomía personalizada recién creada (otras configuraciones predeterminadas están bien). En nuestro caso llamamos a nuestra taxonomía personalizada: testimonial_service y la adjuntamos al tipo de publicación personalizada de testimonios, que registramos en el artículo anterior:
- Si ahora miramos la pantalla para crear un nuevo tipo de publicación personalizada de testimonios, verá el meta cuadro de Servicios de Testimonios en el lado derecho y también un elemento de submenú a la izquierda:
- Eso es todo, ahora podemos agregar nuevos servicios que agruparán los testimonios según los servicios a los que se refieren.
Cree una taxonomía personalizada manualmente: codificación involucrada
Sí, el título dice codificación involucrada, pero eso no es cierto

Puede usar el generador de código WP para generar el código de taxonomía personalizado. Simplemente haga clic en las pestañas en la parte superior e ingrese los detalles de su taxonomía personalizada. El generador generará un código de registro de taxonomía personalizado válido:
// Register Custom Taxonomy function custom_taxonomy_testimonial_service() { $labels = array( 'name' => _x( 'Testimonial Services', 'Taxonomy General Name', 'text_domain' ), 'singular_name' => _x( 'Testimonial Service', 'Taxonomy Singular Name', 'text_domain' ), 'menu_name' => __( 'Testimonial Services', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'parent_item' => __( 'Parent Item', 'text_domain' ), 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), 'new_item_name' => __( 'New Item Name', 'text_domain' ), 'add_new_item' => __( 'Add New Item', 'text_domain' ), 'edit_item' => __( 'Edit Item', 'text_domain' ), 'update_item' => __( 'Update Item', 'text_domain' ), 'view_item' => __( 'View Item', 'text_domain' ), 'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ), 'add_or_remove_items' => __( 'Add or remove items', 'text_domain' ), 'choose_from_most_used' => __( 'Choose from the most used', 'text_domain' ), 'popular_items' => __( 'Popular Items', 'text_domain' ), 'search_items' => __( 'Search Items', 'text_domain' ), 'not_found' => __( 'Not Found', 'text_domain' ), 'no_terms' => __( 'No items', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), ); $args = array( 'labels' => $labels, 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, ); register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args ); } add_action( 'init', 'custom_taxonomy_testimonial_service', 0 );
Puede pegar este código en un complemento recién creado o en el archivo functions.php del tema. Pegué el código directamente en el archivo functions.php, porque es más conveniente para este ejemplo. El elemento del submenú Servicios de Testimonios ha aparecido en el menú del panel de administración de Testimonios y el cuadro meta también está allí, al igual que en la captura de pantalla en la configuración del complemento anterior.
El registro manual de la taxonomía personalizada está funcionando, así que analicemos el código y veamos exactamente lo que hace. La estructura del código es muy similar al registro de tipo de publicación personalizado en el primer artículo, pero varía en algunas configuraciones y llamadas a funciones:
- Enganchamos la función
custom_taxonomy_testimonial_service
en la acción deinit
de WP para registrar la taxonomía personalizada, - El primer bloque de código dentro de la función es una matriz de etiquetas, donde puede cambiar las palabras que se utilizarán al crear/editar taxonomías personalizadas. Sugerencia: le recomendaría que utilice las funciones de internacionalización de escape. Entonces, en lugar de
_x()
y__()
, usaríaesc_html_x()
yesc_html__()
, - El segundo bloque es una matriz de argumentos/configuraciones para la taxonomía personalizada. Puede echar un vistazo a la documentación oficial de WP, para ver qué argumentos puede establecer,
- Con
register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args );
llamada, registramos la taxonomía personalizadatestimonial_service
que se "adjuntará" al tipo de publicación personalizada detestimonials
con los argumentos$args
.
Ahora que tenemos el tipo de mensaje personalizado y la taxonomía personalizada registrada, solo tenemos que mostrarlos en nuestro sitio de WordPress. Este será el tema de la próxima y última publicación de blog sobre tipos de publicaciones personalizadas.