WP标签和分类的数据结构和使用特点

WordPress建立了一个词语(term)表,在此基础上,建立词语分类系统表(term_taxonomy),建立不同分类法各自可用的词语表。其数据关系如图所示(根据wp 2.9)。

WP词语表及标签分类的数据模式

可以看到三种分类系统:标签(post_tag)、分类(category)、链接分类(link_category),这三种标识可以理解为“词语”的不同用途。

根据数据结构,和少量试验,留意到以下几点:

1)post中,每个独立发出的对象都有一个记录,例如每个文章版本和上传的媒体文档,wp可以为其单独关联标签或分类,即,每个版本使用的标签不同,都有记录,上传媒体文档也可以关联标签和分类,但此功能目前还未包含在wp 2.9中。

2)标签、分类等不同分类法使用同一个“词汇表”,词汇的“别名”(slug,注意,不是name)是唯一的。所以当试图在tag或category中分别添加同名词汇(已别名为准),系统会对应到已有词汇表,并拒绝添加slug重复的词汇(但并没有任何提示)。
例如:
已有标签别名“abc”,此时在分类中添加一个别名为“abc”的分类,系统不会重复添加词汇表,而是设定为将同一词汇“abc”作为标签使用。反之亦然。

初步体会:

1)在创建标签、分类、链接分类时,保持名称和别名(name, slug)一致。虽然系统允许你改成不一致,但那样容易给应用管理带来困惑。

2)虽然分类、标签等是分别使用的,但对意义相同的词语保持一致,这样语义明确,将来想修改时,可以仅在一处一次性修改,很方便。

3)对于内容少的个人日志而言,分类和标签也许用好一套就可以了。但对于有较多内容,需要提供全部内容的良好索引机制而言,分类系统和标签系统各自有不同的用途,互相配合使用,需要自己有一个清晰的规划。笼统地说,标签是面向发布对象的,分类则是预设的,一般而言,分类宜简明恒定、标签比较随意。