Answers:
如果您查看Wordpress文档,则会发现Wordpress分类法
term_id
现在仅在term_taxonomy
表中出现一次(此列不是唯一的,并且术语可以在分类法中共享)。根据分类路线图,这种情况将来可能会继续发展。其中一部分是合并术语和术语分类表。
食典说:
这是什么意思?
术语是一个词。它可以属于一个分类法,例如标签,类别或自定义分类法。问题是:可以有几个包含相同术语的分类法。
假设您有一个术语“ fattening”。这个单词有一个ID号。这是term_id。它不取决于该词的使用方式,即该词出现在哪些分类法中。
现在,作为帖子标签的“ fattening”一词也有一个数字。这是term_taxonomy_id。它对应于“ post tag'fattening'”。
也许您还有一个名为“脂肪”的类别。虽然term_id相同,但“ fattening”类别的term_taxonomy_id不同。
因为这是对设计的更深入了解的一部分,所以我将对它进行整体描述... :)
在WP 4.5.3中,仍然存在所有这些表(我将在不带前缀的情况下讨论它们):
获得词条可读名称的途径贯穿了所有这些。
在这里发布主要标识符ID
- 帖子的ID(任何类型)
term_relationships
的商店对:
object_id
- 可以是posts.ID
(但不是必须)
term_taxonomy_id
-这是不是一个项(类)的ID,但一个的ID 关系中的一项(类)和分类之间(“类别类型”)
term_taxonomy
这里的主要标识符在term_taxonomy_id
^^上方描述
:另一个重要的列:
term_id
- 术语的ID(类别)
taxonomy
-存储术语的分类法(“类别类型”)
这可能看起来很有趣,但是最初的意图是增加术语具有更多分类法的能力(在某些情况下可能是有道理的)。
术语
,这里的主要标识符是term_id
-类别的ID,
此处还有其他重要的列是:
name
-可读的类别名称,例如“音乐流派”
slug
-可用的术语,例如URL
因此,残酷地演示SQL来
获取所有已发布的帖子以及所有带有类别名称的类别,
如下所示(在您自己的WP DB上进行测试时,在表中添加前缀):
SELECT * FROM
posts #gets posts
LEFT JOIN
term_relationships #gets posts relationships to term_taxonomies
ON(posts.ID=term_relationships.object_id)
LEFT JOIN
term_taxonomy #gets term_ids
ON(term_relationships.term_taxonomy_id=term_taxonomy.term_taxonomy_id)
LEFT JOIN
terms #finally, gets terms' names
ON(term_taxonomy.term_id=terms.term_id)
WHERE (
(posts.post_status='publish')
#optionally you can filter by a certain post_type:
#AND
#(posts.post_type='some_post_type')
)
ORDER BY posts.ID ASC
术语本身不是类别或标签。必须通过term_taxonomy表为其提供上下文。
term_taxonomy表将术语放置在分类法中。这就是使术语成为自定义分类法(或分类法组合)的类别,标签或一部分的原因。
term_id
是条件表中一个条件的ID。
term_taxonomy_id
是术语+分类对的唯一ID。
将term_id
始终是唯一的,就像term_taxonomy_id
。两者Auto Increment
在表结构中都有一个。
该表wp_term_taxonomy
可以确保例如,一个类被创建,所以WordPress的可以用它如Woocommerce用途的干扰:product_tag
,product_type
,product_cat
,所有的人都是所谓的自定义分类。该表还绑定了父/子结构。随着它的专栏parent
。
最终表term_relationships将诸如post或链接之类的对象与term_taxonomy表中的term_taxonomy_id相关联。
如果我们再次选择Woocommerce作为示例,则该表会将帖子类型链接products
到其分类法product_cat
,其中包含一个名词,例如Computers,当然可以从该表中检索到wp_terms
。这个表格包含term_id
,name
,slug
和term_group
。(我个人从未使用过的term_group)
希望以上内容可以使它们之间的差异以及Wordpress如何使用这些表的事情变得更加清楚。