WordPress 文章和分类可以说是重中之重,WordPress提供了丰富的 API ,自定义分类什么的都不是问题。如果,只是使用 WordPress 系统,而并非开发者的话,就更没啥问题了。
今天,所说的关于 WordPress 分类与分类方法的困惑,主要是 WordPress 数据库中关于分类相关的数据库表的设计。
根据 WordPress 文档,设计到分类的数据库表有:wp_term,wp_termmeta,wp_term_taxonomy,wp_term_relationships 四个表。
不看其数据表结构,先盲猜一下各个表是干什么的:
wp_term 分类表,category,post_tag等及自定义的分类信息,名称、简介什么的。
wp_termmeta 分类属性表,各种附加属性,和 wp_postmeta、wp_usermeta 类似。
wp_term_taxonomy 分类方法表,也就是【分类的分类】,WordPress 自带的有 category 文章分类,post_tag 文章标签。我们还可以自定义,比如电影分类,音乐分类等……
wp_term_relationships 文章-分类关系表,简单说就是:文章和文章分类的对应关系。
好像少了一个表:分类与分类方法之间的对应关系表。
说明,肯定是猜错了……
看一下数据表结构吧。
唯一猜对的就是 wp_termmeta 表,就先不论了。看看其他三张表:
wp_terms
term_id:分类ID
name:分类名
slug:缩略名
term_group:未知
wp_term_taxonomy
term_taxonomy_id:分类方法ID
term_id:分类ID
taxonomy:分类方法(category/post_tag)
description:描述
parent:所属父分类方法ID
count:文章数统计
wp_term_relationships
object_id:链接到wp_posts 表的 post_id 字段或 wp_links 表的link_id 字段。
term_taxonomy_id:链接到wp_term_taxonomy 表的相同字段
term_order:排序
总得感觉就是:都拧成麻花了……
之所以没有【分类与分类方法之间的对应关系表】,是因为使用了【冗余设计】,分类与分类方法本来是多对一,却使用了一对一,也就是说每个分类信息中都包含了其分类方法的完整信息。更让人感觉离谱的是:都冗余设计了,干嘛还分拆成两个表?
还有个让人困惑的地方,wp_term_relationships 中对应的不是 term_id 而是 term_taxonomy_id……
让我们试着调整一下表结构。
wp_terms
term_id:分类ID
name:分类名
slug:缩略名
taxonomy:分类方法(category/post_tag)
description:描述
parent:所属父分类方法ID
count:文章数统计
term_group:未知
wp_term_relationships
object_id:链接到wp_posts 表的 post_id 字段或 wp_links 表的link_id 字段。
term_id:链接到wp_term 表的相同字段
term_order:排序
是不是清楚多了……
WordPress为什么设计成那个样子,肯定是有原因的,历史包袱还是什么高级的优化?
哪位高手给指点一下。
-
WordPress6.5新功能-声明式插件依赖在 WordPress 6.5 中,插件依赖变简单了
-
WordPress 6.5 新功能 - 支持 AVIFWordPress 6.5 新功能 - 支持 AVIF
-
WordPress 6.5移除区块样板菜单项的方法WordPress 6.5新增的区块样板菜单项,可将不同区块组合成一个新的区块模板,方便重复使用。
-
WordPress做多语言企业网站近期常用小伙伴问追格小编,有没有计划做双语WordPress企业官网主题。
-
WordPress插件:LiteSpeed Cache 缓存插件LiteSpeed Cache是一款实用的WordPress缓存插件,专为使用LiteSpeed服务器的用户设计。它能显著提高网站加载速度,改善用户体验。
-
追格企业官网主题多语版惊艳上线:WordPress模块化DIY,重塑企业官网时代追格(zhuige.com)旗下WordPress企业官网主题(多语版)正式发布,多模块巧妙组合,打造非凡页面,简约或华丽,皆显震撼。官网新风尚,颠覆传统设计,C位出道,惊艳全场,重新定义WordPress企业官网。
暂无评论,抢个沙发...