7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. WordPress

Introducción a las Taxonomías Personalizadas de WordPress 3

Scroll to top
Read Time: 14 mins

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

WordPress 3 llena varias lagunas importantes para conseguir convertirse en un sistema de gestión de contenido serio. La función sencilla de usar para las taxonomías personalizadas ofrece a los diseñadores de sitios algunas potentes herramientas para la construcción de una arquitectura de información. ¡Aprender lo que son las taxonomías, por qué son útiles y cómo se usan en el tutorial de hoy!


¿Qué es una Taxonomía?

Las taxonomías son diferentes métodos para clasificar cosas.

Las taxonomías son diferentes métodos para clasificar cosas. Este tutorial usa un ejemplo de entrada sobre diferentes ordenadores de sobremesa, que pueden clasificarse por una serie de distintos criterios, que incluyen:

  • Cantidad de memoria RAM
  • Capacidad de almacenamiento del disco duro
  • Velocidad de CPU
  • Tipo de CPU
  • Sistema operativo instalado
  • etcétera.

Breve Historia de las Taxonomías de WordPress

Categorías

Category Example

Antes de la versión 2.3, WordPress tenía sólo una taxonomía genérica, llamado categoría, para las entradas. Esto funcionó bien para los blogs, ya que permitía crear una categoría de nivel superior denominada "Ordenadores de Sobremesa", con una subcategoría denominada "RAM", que pudiese tener subcategorías de tipo "menos de 1 GB," "1 GB", "2 GB a 4 GB," y así sucesivamente. Una segunda categoría hija de "Ordenadores de Sobremesa" podría ser "Sistema Operativo", con subcategorías como "Windows XP", "Mac OS", "Red Hat", "Ubuntu", etcétera.

Cuando un sistema te permite tener categorías que pueden dividirse en subcategorías, lo llamamos una estructura jerárquica. Lo mejor que podrías hacer para crear una arquitectura profesional para tu sitio antes de la versión 2.3 de WordPress era crear una amplia jerarquía de categorías, en donde las categorías de nivel superior representasen a grandes grupos taxonomías.

Etiquetas

Tags Example

La versión 2.3 de WordPress añadió otro tipo de taxonomía llamada etiquetas. Mientras las categorías son generalmente pensadas de antemano, y hacen referencia específica a los tipos de contenido de un sitio, las etiquetas proporcionan un método más libre y espontáneo para clasificar el contenido.

Por ejemplo, al escribir una Entrada sobre un ordenador concreto, las etiquetas permiten al autor a escribir una o más palabras clave como "juegos", "tivo", "ventilador ruidoso" y etcétera. Estas palabras clave no tendrían sentido como categorías para todo el sitio, pero proporcionan algunos criterios de clasificación adicionales a una entrada. De esta forma los visitantes del sitio podrían encontrar más adelante con fácilidad todos las entradas etiquetadas con "ventilador ruidoso". La naturaleza libre de las etiquetas, sin embargo, no nos ayudan a construir un sistema de clasificación sólido alrededor de valores conocidos como los tipos de sistema operativo o los tipos de CPU. Las etiquetas también son unidimensionales, por lo que no permiten ninguna estructura jerárquica.

Taxonomías Personalizadas de Un Sólo Nivel

Single-Level Custom Taxonomies

La versión de WordPress 2.8 hizo que fuese posible añadir esquemas de clasificación personalizados mediante algunos leves cambios en el código en tu sitio. Esto te permite crear una lista de posibles sistemas de operativos, además de una lista de tipos de RAM y así sucesivamente. Sin embargo, no permitía que estas taxonomías personalizadas tuviesen una jerarquía similar a la taxonomía propia de las categorías genéricas.

Taxonomías Personalizadas Completamente Jerárquicas

Fully Hierarchical Custom Taxonomies

Por último, la versión 3 de WordPress nos proporcionó taxonomías personalizadas completamente jerárquicas. Observa cómo la naturaleza jerárquica nos permite simplificar la taxonomía del sistema operativo, por ejemplo, empujando las diferentes variantes de Windows bajo una clasificación de los padres de "Windows". Esto permite a los visitantes ver todos las entradas clasificadas bajo cualquier sistema operativo Windows, o que puedan ser incluso más específicos y ver sólo las entradas clasificadas, por ejemplo, dentro de Windows XP.


Crear una Taxonomía Personalizada

Editar el archivo functions.php de tu tema

La version 3 de WordPress no permite crear taxonomías personalizadas desder la pantalla de administración. Para definir inicialmente tus taxonomías personalizadas sin un plugin, tendrás que agregar un poco de código al archivo functions.php de tu tema. Esto no es demasiado difícil, simplemente sigue mi ejemplo.

Para agregar taxonomías personalizadas, tenemos que editar el archivo "functions.php" ubicado dentro del directorio de tu tema. Por ejemplo, yo estoy usando el tema "twentyten" que viene por defecto con WordPress 3.0, y mi instalación WordPress está en un directorio llamado "wp." Mi archivo functions.php está por tanto en:
[website_root]/wp/wp-content/themes/twentyten/functions.php.


Añadir Taxonomías en el Código

Siguiendo con el ejemplo de los ordenadores de sobremesa, añadimos distintas taxonomías para la RAM, el disco duro y el sistema operativo. En este punto, estamos simplemente añadiendo las taxonomías, como envases vacíos. Afortunadamente, podemos añadir y gestionar las diferentes clasificaciones, como por ejemplo "Windows XP", desde la comodidad del escritorio de administración de WordPess.


Paso 1 Una Función para Crearlos Todos

En primer lugar, tenemos que construir una función que cree todas las taxonomías que necesitamos. Llamaremos a la función "build_taxonomies". Vamos a agregar esta función a la parte inferior del archivo functions.php.


Paso 2 Definir las Taxonomías

A continuación, para cada taxonomía que queremos crear, tenemos que llamar a una función particular de WordPress con los parámetros correctos. Aquí tienes la función y sus parámetros principales, explicados.

  • internal_name: ¿Cómo se llamará la taxonomía desde dentro de WordPress, en los archivos de la base de datos y la plantilla?
  • object_type: ¿Qué tipos de contenido se pueden clasificar con esta taxonomía? Los valores posibles son "post, página, enlace", y después los nombres de los tipos de entrada personalizadas que aprenderemos a crear en un futuro tutorial.
  • A continuación vienen una serie de parámetros opcionales. Vamos a utilizar aquí para este tutorial los más importantes, pero puedes encontrar un listado completo en la página de Referencia de la Función / register_taxonomy del Codex. Los parámetros que vamos a usar son:
  • hierarchical: si es 'true', la taxonomía es capaz de crear jerarquías, por ejemplo, categorías de WordPress. Si es 'false', esta taxonomía se comporta de forma muy parecida a como lo hacen las etiquetas, de una forma muy libre.
  • label: este es el nombre legible para los humanos, visible en la interfaz de tu sitio para denominar a la taxonomía.
  • query_var: si es 'true', podremos solicitar a WordPress entradas según las selecciones de esta taxonomía. Por ejemplo, podríamos buscar todos los posts que tienen la taxonomía del sistema operativo 'Windows' seleccionada.
  • rewrite: Si es 'true', WordPress utilizará las URL amigables al visualizar una página para esta taxonomía. Por ejemplo, una página que lista todos las entradas con el el sistema operativo "Windows" seleccionado, estaría representada por la siguiente url: https://domain.com/operating_system/windows

Nuestra entrada creada para agregar la taxonomía del sistema operativo se ve así:

Segue adelante y añade lo anterior a tu función "build_taxonomies".

Más información:

"register_taxonomy" está más ampliamente definida en el codex de WordPress.


Paso 3 Invocar la Función de Creación de Taxonomías

Tenemos que añadir una línea más en el archivo "functions.php" por lo que realmente se ejecutará nuestra función de "build_taxonomies". Te "enganchamos" la función "build_taxonomies" el evento "init" añadiendo el siguiente código:

Usted puede Agregar esta línea en cualquier lugar, pero generalmente agréguela sobre la función que estamos llamando, para que tendría este aspecto:

Más información:

Aprende más sobre add_action.


Añadir Clasificaciones a la Nueva Taxonomía

Viewing taxonomy classifications

Una vez que ha agregado la taxonomía de "Sistema operativo" en el archivo "functions.php" correctamente, debería aparecer como un nuevo elemento en el panel de "Posts" de tu panel de control. Haga clic en el nombre de la taxonomía para añadir y editar las clasificaciones que desee incluir.

Adding taxonomy classifications

Ahora, puede añadir y editar sistemas operativos tal y como Añadir categorías genéricas.


Añadir Más Taxonomías

Si deseas añadir las taxonomías "RAM" y "Disco Duro" para seguir con el ejemplo, simplemente añade lo siguiente al archivo functions.php:

Una vez terminado, la sección cambia del archivo functions.php se verá algo como esto:


Crear un Post Usando Tu Nueva Taxonomía

Creating post with classifications

Crea nuevas entradas, y verás como las nuevas opciones de taxonomía aparecen en la pantalla Editar Entrada. Selecciona cualquier clasificación que pienses que se aplica a tus entradas.


Mostrar diversas taxonomías de un Post

Nada que hemos hecho hasta ahora puede verse por los visitantes de su sitio. Nos gustaría puestos mostrar qué taxonomías personalizadas están clasificados, al igual que mensajes comúnmente revelan sus categorías y etiquetas.

Para ello, sólo necesitamos hacer una adición simple al bucle en ciertos archivos de plantilla.


Clasificación de la taxonomía que se muestra en páginas individuales

En el tema twentyten y muchos otros, una de categorías y etiquetas a continuación el texto del cuerpo. Vamos a añadir información de taxonomía personalizada, si existe, justo antes de la información de categoría y etiqueta.

Taxonomy info on single posts

Para que esto suceda, tendremos que editar el archivo de plantilla "single.php", que se llama normalmente para mostrar un post individual. Es mi archivo single.php: [website_root]/wp/wp-content/themes/twentyten/single.php.


Paso 1 encuentre el lugar correcto para agregar código

En single.php, encontrar la línea con:

Esto aparece justo antes del:

En twentyten, este div contiene las categorías, tags, enlace permanente y otros datos para el puesto actual. Pondremos nuestra información de taxonomía justo por encima de este div.


Paso 2 Recuperar Información de la Taxonomía Relativa a la Entrada Actual

Indica algunas variables que determinarán la información de salida para la taxonomía y la información de las diferentes taxonomías que podamos esperar encontrar.

Aquí, estamos llamando a la función de WordPress "get_the_term" que enumera los siguientes parámetros:

  • $post-> ID: el id de la entrada actual.
  • 'operating_system': el nombre de la taxonomía personalizada cuyos datos estamos consultando. Le estamos preguntando si a la entrada actual le ha sido asignada algún tipo de clasificación dentro de la taxonomía 'operating_system'.
  • 'Operating System(s)': si nos responde algo, esta es la cadena que nos gustaría tener delante de ella.
  • ', ': Si se devuelven varios elementos, se trata de la cadena que define como nos gustaría tenerlos separados.
  • '': Si no nos devuelve nada, esta es la cadena que nos gustaría tener detrás de ella. En este caso, no queremos añadir nada tras el resultado.

Vamos a hacer lo mismo para las otras dos taxonomías que esperamos que puedan contener datos:

Más información:

Aprende más sobre "get_the_term_list."


Paso 3 Aplicar Formato a los Resultados de las Clasificaciones, si Existen

Comprueba si existen resultados en cada una de las tres posibles taxonomías. Si existen, las añadimos a nuestra salida, además de un salto de línea.


Paso 4 Mostrar los Resultados de la Clasificación, si Existe Alguno

Comprueba si los pasos anteriores dieron como resultado alguna información relativa a una taxonomía en todos a la salidas. Si existe información de alguna taxonomía, la mostraremos dentro de un div con la clase "entry-utility".


Paso 5 Verifica Tus Resultados

Visita la página de una entrada, deberías ver cualquier taxonomía personalizada enumerada abajo.

Taxonomy info on single posts 2

Ver una Lista de las Entradas Clasificadas por Taxonomía

Ahora nuestras entradas individuales nos indican con qué taxonomías personalizadas han sido clasificadas. Cuando enumeran una clasificación taxonomías personalizadas, también proporcionan un enlace para ver todas las entradas incluidas en esa clasificación. Por ejemplo, haciendo clic sobre el enlace "Mac OS" situado junto a "Sistemas operativos" de nuestra entrada, teóricamente debería mostrar todas las entradas incluidas en la clasificación del sistema operativo "Mac OS".

Sin embargo, esto no ocurre de forma predeterminada en la versión 3 de WordPress. Vamos a tener que hacer un archivo de plantilla personalizado para visualizar los archivos de la taxonomía de manera que funcione. WordPress ya permite ver todas las entradas asignadas a una categoría determinada, o todos las entradas incluidas en una cierta etiqueta. Cuando hayamos terminado con esto, podremos también ver todas las entradas asignadas a clasificaciones concretas de nuestras taxonomías personalizadas.

Para que esto suceda, necesitarás crear el archivo de plantilla "taxonomy.php". WordPress intentará usar este archivo en cualquier momento que quiera mostrar la lista de entradas de una taxonomía personalizada.


Paso 1

Abre el archivo "category.php", copia su contenido y pégalo en un nuevo archivo llamado "taxonomy.php." Guardar taxonomy.php en el directorio de tu tema. Por ejemplo, mi archivo taxonomy.php está en:
[website_root]/wp/wp-content/themes/twentyten/taxonomy.php.


Paso 2 Obtener Información Sobre la Clasificación de la Taxonomía Actual

En el archivo taxonomy.php, tenemos que obtener información relativa a la taxonomía que va a ser enumerada. Probablemente desearemos mostrar el nombre y su descripción (si existe) para la clasificación seleccionada.

Justo debajo de <? php get_header();? &gt;, agrega la siguiente línea:

Esto obtiene toda la información relativa a la taxonomía que invoca esta página y la devuelve como un objeto en la variable $term. Por ejemplo, la clasificación de "Mac OS" devuelve el siguiente objeto:


Paso 3 Mostrar la Descripción y el Nombre de la Clasificación

Queremos cambiar el nombre de la página para indicar a los usuarios qué es lo que están viendo. Como hemos empezado con la plantilla category.php, podemos coger la línea que usamos para mostrar el nombre de la categoría y cambiarlo un poco para que nos muestre el nombre de la página deseada y, en su caso, también la descripción.

Cambia la siguiente línea del archivo category.php:

A lo siguiente:

Esto cambia el texto estático al principio de la línea y después inserta el nombre de la clasificación. (Nota: para la correcta localización, tenemos que añadir correctamente 'Entradas clasificadas como:' en el archivo languages/twentyten.pot. Lo cual está fuera del alcance de este tutorial, simplemente se consciente de la transgresión que se dá aquí.)

Luego añade lo siguiente:

Si existe una descripción para esta clasificación, se mostrará justo bajo su título.

Taxonomy Archive Page

Después de hacer cambios a taxonomy.php, visita una de las entradas que hayas clasificado con una taxonomía personalizada. Debido a nuestro trabajo anterior en el archivo "single.php", la entrada debería mostrar clasificaciones personalizadas en su parte inferior. Simplemente haz clic en una de las clasificaciones para ver cómo funciona una de las taxonomía listadas.


Conclusión

Espero que este tutorial haya explicado claramente lo que son las taxonomías y te haya enseñado a hacer uso de ellas como potente herramienta de organización desde la versión 3 de WordPress. Espero dar continuidad en breve a este tutorial explicando qué son los tipos de entradas personalizadas en WordPress, su estrecha relación con las taxonomías personalizadas y cómo utilizarlas. ¡Muchas gracias por tomarte el tiempo de visitar Tuts+!

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.