De entre las novedades de WordPress 2.3, podemos destacar el sistema de taxonomía que nos permite catalogar nuestros posts mediante tags, sin perder el sistema de categorías que ya poseíamos.
Para conseguir esta funcionalidad se ha tenido que modificar el código y sobretodo la base de datos que es la base de este sistema. Un diseño de base de datos erroneo puede ser el punto de inflexión para decidir de una aplicación triunfa o se derrumba.
En el sistema de taxonomía han apostado por un modelo de 3 tablas que nos permiten enlazar taxonomías con terminos. Ya podemos ver estas tres tablas para hacernos una idea de como afrontar las nuevos plugins que desarrollemos para WordPress.
wp_terms
CREATE TABLE $wpdb->terms (
term_id bigint(20) NOT NULL auto_increment,
name varchar(55) NOT NULL default '',
slug varchar(200) NOT NULL default '',
term_group bigint(10) NOT NULL default 0,
PRIMARY KEY (term_id),
UNIQUE KEY slug (slug)
);
Esta tabla contendrá todos los tags que hayamos creado, serán tratados y almacenados de forma única evitando repeticiones. Podemos ver slug
, que se trata de la URL que nos llevará a filtrar por ese término.
wp_taxonomy
CREATE TABLE $wpdb->term_taxonomy (
term_taxonomy_id bigint(20) NOT NULL auto_increment,
term_id bigint(20) NOT NULL default 0,
taxonomy varchar(32) NOT NULL default '',
description longtext NOT NULL,
parent bigint(20) NOT NULL default 0,
count bigint(20) NOT NULL default 0,
PRIMARY KEY (term_taxonomy_id),
UNIQUE KEY term_id_taxonomy (term_id,taxonomy)
);
Un término no es una categoría o un tag por si mismo, necesitamos crear un contexto mediante la tabla term_taxonomy
. Por defecto las taxonomías creadas serán «category
«, «link_category
» y «post_tag
«, aunque podremos ampliarlas mediante plugins. Además nos permitirá que los items introducidos tengan hijos.
wp_term_relationship
CREATE TABLE $wpdb->term_relationships (
object_id bigint(20) NOT NULL default 0,
term_taxonomy_id bigint(20) NOT NULL default 0,
PRIMARY KEY (object_id,term_taxonomy_id),
KEY term_taxonomy_id (term_taxonomy_id)
);
Necesitamos una tabla que nos referencie una taxonomía con un objeto (post, categoría,…).
API
Ya podemos ir viendo el API que tendremos disponible para desarrollar con esta funcionalidad que el nuevo WordPress nos va a deleitar.
9 comentarios, 13 referencias
+
#