Tanto las etiquetas como las categorías tienen 2 taxnomías diferentes. La taxonomía vendría a ser la manera de clasificar un grupo de posts en WordPress. Una de las ventajas que tiene WordPress es crear nuevas taxonomías para diferentes clasificaciones.
Supongamos que tenemos una web donde hablamos de diferentes libros. Los libros pueden clasificarse en escritor, género, editorial, fecha y podríamos seguir encontrando más formas. Con taxonomías personalizadas se puede obtener una navegación mucho más organizada sin necesidad de crear muchas etiquetas o categorías.
Un ejemplo práctico, un análisis del libro “El guardián entre el centeno”:
- Título: Análisis de «El guardián entre el centeno»
- Categoría: Análisis
- Etiquetas: Nueva York, Holden Caulfield, adolescencia
- Escritor: J. D. Salinger
- Editorial: Little, Brown and Company
- Género: Realismo literario
Con taxonomías personalizadas se puede vincular estos datos a un análisis como si fuesen etiquetas normales. Para “registrar” una nueva taxonomía es preciso añadir el siguiente código en functions.php.
1 2 3 4 5 6 7 8 9 10 |
function mis_taxonomias(){ register_taxonomy('escritor', 'post', array( 'hierarchical' => false, 'label' => 'Escritor', 'query_var' => true, 'rewrite' => true)); register_taxonomy('genero', 'post', array( 'hierarchical' => false, 'label' => 'Género', 'query_var' => true, 'rewrite' => true)); } add_action('init', 'mis_taxonomias', 0); |
Ahora cuando se escriba un nuevo post, a la derecha debería aparecer nuevos campos de etiquetas para escritor y género.
Y tendrían vínculos similares a estos:
http://dominio.com/escritor/j-d-salinger/
http:// dominio.com/genero/realismo-literario/
Estas URLs las usará archive.php para mostrar todos los posts que tengan esas etiquetas.
También es posible mostrar una nube de etiquetas de todos elementos específicos de una taxonomía personalizada. Para ello basta con introducir el siguiente código en cualquier parte de alguno de los archivos de tema, aunque sería más idóneo en index.php.
1 |
wp_tag_cloud(array('taxonomy' => 'genero', 'number' => 45)); |
En este caso se crea una nube de hasta 45 etiquetas relacionadas con la taxonomía género. Si quisieras mostrar todas las etiquetas, el parámetro number debe estar a «0».
Se puede realizar consultas para obtener los posts que tenga una etiqueta especifica de una taxonomía personalizada.
1 |
query_posts(array('escritor' => 'carlos-fuentes', 'showposts' => 10)); |
Se mostarán 10 hasta 10 posts que tengan la etiqueta Carlos Fuentes. Para que funcione es preciso que este código se ponga antes del loop (código que usar WordPress para mostrar los posts).
Y para finalizar, un código para mostrar todas las palabras asociada a una taxonomía.
1 |
echo get_the_term_list($post->ID, 'genero', 'Géneros:', '-', ''); |
Se mostrarán separado por guiones las etiquetas relacionadas con la taxonomía género. Los últimos 3 parámetros son lo que hay antes del vínculo de la etiqueta, entre cada vínculo y después de la etiqueta.
Y hasta aquí el post de hoy. Espero que hayáis aprendido mucho. A seguir picando 🙂