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为什么设计成那个样子,肯定是有原因的,历史包袱还是什么高级的优化?
哪位高手给指点一下。
-
Loco Translate 一款专为WordPress设计的翻译插件WordPress Loco Translate是一款专为WordPress用户设计的翻译插件,它简化了主题和插件的多语言翻译过程。
-
WordPress后台待审文章显示气泡提示的方法之前小编分享过一篇《WordPress 后台菜单添加 badge-红点提示(气泡通知)》的文章,今天我简单说说待审文章(为全部文章类型显示待审角标提示)的气泡提示如何操作。
-
FluentSMTP一款功能强大且免费的WordPress SMTP插件FluentSMTP是一款功能强大且免费的SMTP插件,它支持为WordPress配置多个SMTP发送服务器。
-
追格小程序V2.5.8更新发布追格小程序是一款采用积木式理念的微信小程序构建框架,它巧妙融合了Uniapp与WordPress技术,打造出一个开源且无加密限制的开发环境。
-
WordPress必备:使用wp_get_theme()函数获取当前主题详情在WordPress中,wp_get_theme() 函数用于获取当前启用的主题或指定主题的信息。这个函数返回一个 WP_Theme 对象,该对象包含了主题的详细信息,如主题名称、版本、模板目录、样式表目录等。
-
Redis Object Cache WordPress对象缓存插件Redis Object Cache是一款功能强大、易于使用的WordPress对象缓存插件。通过合理配置和优化,可以显著提高网站的访问速度和用户体验。
暂无评论,抢个沙发...