- Las taxonomías predeterminadas
- Taxonomías personalizadas con register_taxonomy()
- URLs de las páginas de archivo taxonómico
- Jerarquía en taxonomías jerárquicas
- Indexación de las páginas de archivo taxonómico
- Taxonomías y el editor de bloques
- Taxonomías compartidas entre múltiples CPT
- Para profundizar
WordPress tiene un sistema de taxonomías integrado y extensible. Entiende las taxonomías como colecciones de términos que se asignan a contenidos para clasificarlos. Cualquier tipo de contenido —entradas, páginas o Custom Post Types— puede tener taxonomías asociadas. Y cualquier taxonomía puede ser jerárquica (como las categorías) o plana (como las etiquetas).
Este artículo cubre la implementación técnica de las taxonomías en WordPress y su impacto directo en la arquitectura de URLs del sitio.
Las taxonomías predeterminadas
WordPress registra por defecto dos taxonomías para las entradas (post):
category: Jerárquica. Obligatoria para las entradas (toda entrada sin categoría asignada cae en “Sin categoría”). Genera páginas de archivo en /categoria/nombre/ por defecto, configurable en Ajustes > Enlaces permanentes > Base de categorías.
post_tag: Plana. Opcional. Genera páginas de archivo en /etiqueta/nombre/ por defecto, configurable en Ajustes > Enlaces permanentes > Base de etiquetas.
Estas dos taxonomías solo están asociadas a las entradas por defecto. No se aplican automáticamente a los Custom Post Types, que necesitan sus propias taxonomías o una asociación explícita.
Taxonomías personalizadas con register_taxonomy()
Para cualquier tipo de contenido que no encaje en las taxonomías predeterminadas, se registran taxonomías personalizadas:
// Taxonomía jerárquica (tipo categoría)
register_taxonomy(
'genero_libro', // nombre interno (sin espacios, sin mayúsculas)
array( 'libro' ), // CPT al que se asocia
array(
'labels' => array(
'name' => 'Géneros',
'singular_name' => 'Género',
),
'hierarchical' => true,
'public' => true,
'rewrite' => array( 'slug' => 'genero' ),
'show_in_rest' => true,
)
);
// Taxonomía plana (tipo etiqueta)
register_taxonomy(
'formato_libro',
array( 'libro' ),
array(
'labels' => array(
'name' => 'Formatos',
'singular_name' => 'Formato',
),
'hierarchical' => false,
'public' => true,
'rewrite' => array( 'slug' => 'formato' ),
'show_in_rest' => true,
)
);
URLs de las páginas de archivo taxonómico
Cada término de cada taxonomía genera una página de archivo cuya URL sigue el patrón definido en rewrite:
/genero/ficcion/ ← archivo del término "ficción" de la taxonomía "género"
/genero/no-ficcion/ ← archivo del término "no ficción"
/formato/ebook/ ← archivo del término "ebook" de la taxonomía "formato"
Para las taxonomías predeterminadas, el slug base se configura en Ajustes > Enlaces permanentes. Para taxonomías personalizadas, el slug se define en el parámetro rewrite de register_taxonomy().
Consideración importante: El slug base de la taxonomía debe elegirse con cuidado y no cambiarse después del lanzamiento. Cambiarlo modifica todas las URLs de archivo de esa taxonomía, lo que requiere redirecciones masivas.
Jerarquía en taxonomías jerárquicas
Las taxonomías con hierarchical => true permiten crear términos padre e hijo. Un término hijo en WordPress tiene su propia URL plana, no jerárquica:
/genero/ficcion/ ← término padre
/genero/ciencia-ficcion/ ← término hijo (NO /genero/ficcion/ciencia-ficcion/)
WordPress no refleja la jerarquía de los términos en la URL de forma nativa. Todos los términos de una taxonomía, independientemente de su nivel, tienen URLs de primer nivel dentro del slug de la taxonomía. Esto es una limitación conocida del sistema de reescritura de WordPress.
Si la jerarquía en la URL es un requisito, hay que implementar una reescritura personalizada o usar un plugin específico para taxonomías jerárquicas con URLs anidadas.
Indexación de las páginas de archivo taxonómico
Las páginas de archivo taxonómico plantean la misma pregunta que en cualquier sitio: ¿deben indexarse?
En WordPress, los plugins de SEO permiten configurar la directiva de indexación por taxonomía completa. La configuración recomendada como punto de partida:
- Archivos de
category: indexables si la categoría tiene suficientes contenidos y descripción editorial propia. - Archivos de
post_tag:noindexpor defecto. - Archivos de taxonomías personalizadas: depende del caso. Una taxonomía de géneros literarios con muchos libros por género puede indexarse; una taxonomía de atributos técnicos con términos muy granulares, probablemente no.
Taxonomías y el editor de bloques
Desde WordPress 5.0, las taxonomías con show_in_rest => true están disponibles en el editor de bloques (Gutenberg). Sin este parámetro, la taxonomía solo aparece en el editor clásico. Para cualquier taxonomía nueva, show_in_rest => true es la configuración correcta.
Taxonomías compartidas entre múltiples CPT
Una taxonomía puede asociarse a más de un CPT. Esto es útil cuando varios tipos de contenido comparten una misma dimensión de clasificación:
register_taxonomy(
'nivel',
array( 'curso', 'tutorial', 'articulo' ), // asociada a tres CPT
array( /* ... */ )
);
Hay que evaluar si la taxonomía compartida tiene sentido semántico en todos los CPT a los que se asocia. Una taxonomía de “nivel” (introductorio, intermedio, avanzado) puede tener sentido para cursos y tutoriales; puede o no tenerlo para artículos editoriales.