当前位置 : 主页 > 网络编程 > PHP >

理解wordpress中的taxonomy category与term

来源:互联网 收集:自由互联 发布时间:2023-09-03
最近接触了很多PHP的东西,也学到了很多新的,就想着也利用热乎的知识优化一下基于 ​ ​Wordpress​ ​ 的极风游官网。 实际操作过程中,发现其实除了php的知识以外,wordpress也还是

理解wordpress中的taxonomy category与term_wordpress

最近接触了很多PHP的东西,也学到了很多新的,就想着也利用热乎的知识优化一下基于 ​​Wordpress​​ 的极风游官网。

实际操作过程中,发现其实除了php的知识以外,wordpress也还是有很多自己的东西,而这些东西它不仅仅是一个概念,主要是深入到了主题及插件开发的方方面面。比如题目中的 ​​taxonomy​​​、​​category​​​ 和 ​​term​​,就让我花了好些时间去理解。记录一下吧。

分类法(Taxonomy)

作为分类法,必须和 ​​Category(分类)​​ 撇清关系。首先它用来对你的数据进行分类并且把他们分组到数据集或子集中。

简单理解,无论系统默认的 ​​Category​​​,还是 ​​Tag(标签)​​ ,都是一种分类法。

当然,我们还可以创建自定义分类法,例如 工单常见问题 ,这给文章提供了独立的分类方式。

分类项(Term)

​Term​​ 其实就是分类法的一个子集,它进一步细分了分类法。

接着分类法的例子,我们可能还会创建 计费问题售后问题服务问题 等作为 工单 的子类。

分类(Category)

​Category​​​ 是一个Wordpress系统内置分类法,与 ​​Tag​​ 相对应。前者是一个具有层级结构的分类法,而后者是非层级结构的。

那么,根据之前我们说的,这里新建分类,例如 最新精选,实际上就是新建了2个 ​​Term​​。

进一步理解

来看图说话吧,下图是数据库设计。

理解wordpress中的taxonomy category与term_wordpress_02

分类法和分类项相关内容存储于下面的数据表中:


  • wp_terms – 所有分类项
  • wp_term_taxonomy – 分类项所属分类法
  • wp_term_relationships – 分类法所对应的具体对象(例如 category 对应 post)

总结

这些都理解了,那么诸如 ​​register_taxonomy​​​ 、​​get_terms​​ 之类的方法,也就知道什么时候使用了。

其实感觉wordpress还是一直在努力与时俱进的,虽然感觉为了向前兼容真的妥协了很多东西,但是总的来说,仍然不失为一个好用的CMS系统。

[2023年01月10日原始发布于本作者博客]

网友评论