Advertisement
  1. Code
  2. Creative Coding

Aplicar categorías, etiquetas y taxonomías personalizadas a archivos adjuntos multimedia

Scroll to top
Read Time: 6 min

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

¿Te has sentido alguna vez frustrado por el hecho de que WordPress no te permita asignar categorías o etiquetas a tus imágenes o los medios que hayas cargado?

Imagina lo útil que podría ser: podrías crear galerías dinámicas de imágenes desde lugares específicos o de tipos concretos (paisajes, abstractos, etc.), o podrías crear páginas de listado para sitios con un amplio número de PDF adjuntos.

Las buenas noticias son que esto es sorprendentemente fácil de conseguir. Puedes añadir categorías y etiquetas a tus adjuntos añadiendo algún código básico al archivo de funciones de tu tema o en un plugin, y puedes también crear una taxonomía que se aplique a los adjuntos.

En este tutorial te mostraré cómo hacer esto, e, incluso mejor, ¡en 10 minutos o menos!

¿Qué es una taxonomía?

Según el Códice de WordPress:

Taxonomía es una de esas palabras que la mayoría de la gente nunca ha escuchado o usado. Básicamente, una taxonomía es una forma de agrupar juntas cosas.

Por ejemplo, podría tener un grupo de distintos tipos de animales. Puedo agruparlos juntos según distintas características y después asignar esos nombres de grupos. Esto es algo que la mayoría de la gente encuentra en las clases de biología, y es conocido como la Taxonomía Linnaean.

En WordPress, una “taxonomía” es un mecanismo de agrupación para algunas entradas (o enlaces o tipos de entradas personalizadas).


Lo que necesitarás para completar este tutorial

Necesitarás lo siguiente:

  • Una instalación de desarrollo de WordPress
  • Acceso al archivo functions de tu tema o acceso FTP de manera que puedas crear y subir un plugin, si eliges este método en lugar de editar el archivo de funciones
  • Un editor de texto

Nota: Yo recomiendo la creación de un plugin para añadir esta funcionalidad a tu sitio, porque esta no es una funcionalidad específica de los temas, y podrías necesitarla si decides cambiar los temas en el futuro. Por supuesto, añadir el código a tu archivo de funciones del tema funcionará también.


Antes de empezar: La pantalla de edición de medios

Cómo explica, la Pantalla de edición de medios es bastante desnuda, ya que no existen categorías, etiquetas, o taxonomías disponibles:

attachments-and-taxonomies-media-editing-screen-beforeattachments-and-taxonomies-media-editing-screen-beforeattachments-and-taxonomies-media-editing-screen-before

Por defecto, no dispones de la opción para seleccionar ninguna existente categoría o etiqueta, pero tú puedes cambiar esto.


Aplicar categorías a los adjuntos

El primer paso consiste en habilitar las categorías para los adjuntos. Consigues esto usando la función register_taxonomy_for_object_type(). En el archivo de tu plugin o en el archivo de funciones de tu tema, añade lo siguiente:

Guarda el archivo y refresca la pantalla de Edición de medios. Verás que las categorías están ahora disponibles:

attachments-and-taxonomies-media-editing-screen-with-categoriesattachments-and-taxonomies-media-editing-screen-with-categoriesattachments-and-taxonomies-media-editing-screen-with-categories

También aparecerá una columna para las categorías en la pantalla de la Biblioteca de medios, como puedes ver:

attachments-and-taxonomies-media-library-screen-with-categoriesattachments-and-taxonomies-media-library-screen-with-categoriesattachments-and-taxonomies-media-library-screen-with-categories

Nota: Aquí estoy trabajando con imágenes, pero esto también funcionará para todos los tipos de archivos adjuntos.


Aplicar etiquetas a los adjuntos

Si prefieres trabajar con etiquetas en lugar de hacerlo con categorías (o quizá con ambas), usarías la misma función. Añade lo siguiente a tu archivo de funciones o archivo de plugin:

Como antes, esto añadirá etiquetas a la pantalla de Edición de medios:

attachments-and-taxonomies-media-editing-screen-with-tagsattachments-and-taxonomies-media-editing-screen-with-tagsattachments-and-taxonomies-media-editing-screen-with-tags

También añadirá una columna de etiquetas a la pantalla de la Biblioteca de medios:

attachments-and-taxonomies-media-library-screen-with-tagsattachments-and-taxonomies-media-library-screen-with-tagsattachments-and-taxonomies-media-library-screen-with-tags

Llevarlo más lejos – Crear una taxonomía personalizada para los adjuntos

En algunos casos es posible que no quieras trabajar con las categorías o las etiquetas existentes cuando clasifiques tus adjuntos, en cuyo caso puedes registrar una taxonomía personalizada y aplicarla al tipo de entrada “attachment”.

En el anterior ejemplo he añadido una etiqueta a mi imagen para mostrar donde fue tomada. Digamos que quiero crear una taxonomía jerárquica denominada “Locations” ("Ubicaciones”), la cual puedo usar para clasificar y mostrar todas mis imágenes.

Realizas esto usando la función register_taxonomy(). En el archivo de tu plugin o tu archivo de funciones, añade lo siguiente:

Esto crea una nueva taxonomía jerarquizada, la cual puede usarse solo con adjuntos.

Si quisieras aplicarlo a otros tipos de contenido, sustituirías el parámetro 'attachment' en la función register_taxonomy() por una matriz que contiene los slugs de todos los tipos de contenido que querías incluir, por ejemplo:

Ahora la pantalla de Edición de medios muestra ahora la nueva taxonomía:

attachments-and-taxonomies-media-editing-screen-with-custom-taxonomyattachments-and-taxonomies-media-editing-screen-with-custom-taxonomyattachments-and-taxonomies-media-editing-screen-with-custom-taxonomy

Como he incluido el argumento 'show_admin_column' en mi código, también lo hace la pantalla de Biblioteca de medios:

attachments-and-taxonomies-media-library-screen-with-custom-taxonomyattachments-and-taxonomies-media-library-screen-with-custom-taxonomyattachments-and-taxonomies-media-library-screen-with-custom-taxonomy

¡Y eso es todo! Ahora tienes categorías, etiquetas y tipos de entradas personalizadas configurados para funcionar con los adjuntos de medios.


Resumen y aplicaciones de esta técnica

Como has visto, es posible aplicar categorías y etiquetas a los datos adjuntos como archivos de imágenes y PDFs usando la función register_taxonomy_for_object_type(). También puedes crear una nueva taxonomía usando register_taxonomy() y aplicándolo a los adjuntos de medios, bien en sí mismos o junto con otros tipos de contenido.

Aplicar taxonomías (incluyendo categorías y etiquetas) a los adjuntos de esta forma podría tener varios usos prácticos:

  • Crea un archivo de plantilla personalizado attachment.php para mostrar imágenes de adjuntos con estilo de galería usando páginas de archivo para mostrar imágenes de distintas categorías o localizaciones.
  • Crear archivos de plantilla para taxonomías o términos concretos para mostrar adjuntos de forma distinta a lo largo del sitio, por ejemplo usando la taxonomía “localización”, podrías crear un archivo de plantilla taxonomy-localizacion-uk.php para mostrar un archivo de imágenes de UK, con la adición de estilos específicos para esa ubicación.
  • Categorizar PDFs adjuntos en un sitio con gran número de ellos y usar páginas de archivo para ayudar a mostrar archivos por tema, departamento, tipo de medio o cualquier otras variaciones que necesites para tu proyecto.
  • En el archivo de plantilla para una taxonomía dada, mostrar un enlace a todos los adjuntos con el término consultado bajo el listado de entradas con ese término, con enlaces directos a los archivos del adjunto, usarías dos consultas personalizadas en el archivo de tu plantilla para hacer esto.

Existen muchas más aplicaciones potenciales para esto, efectivamente significa que puedes trabajar con archivos de adjuntos de la misma forma que lo haces con las entradas y los tipos de entradas personalizadas, siendo capaz de consultarlos y mostrar sus archivos de muy diversas formas.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.