为什么Get_Term()需要分类法?Term_ID不是唯一的吗?

时间:2011-11-15 作者:Tom Auger

A related WPSE question 询问如何通过仅指定ID而不指定分类来获取术语。我的问题更富有哲理。通常,WP核心中的内容是有原因的。我试图理解为什么term\\u id不能成为这个术语的主键-为什么我们也需要分类法?单个术语记录可以是多个分类法的成员吗?目前API中肯定不支持这一点。是否有一个可能需要这样做的用例?

或者是必需的$taxonomy 中的参数get_term() 数据库结构的早期化身的退化尾巴?

2 个回复
最合适的回答,由SO网友:Tom Auger 整理而成

我已经向trac记录了一张这张罚单:http://core.trac.wordpress.org/ticket/20536

然而,事实证明,目前这是必要的,因为WordPress目前(自2.x以来)有一个bug,它将两个名称相同的术语与相同的term\\u id关联起来!因此,一个术语可能(尽管不正确)与多个分类法相关联。查看此错误:http://core.trac.wordpress.org/ticket/5809

它的影响非常广泛,因此实现修复需要进行非常彻底的单元测试。如果有任何进展,我会尽量记住更新这个问题。

SO网友:kaiser

为什么我们也需要分类学呢?单个术语记录可以是多个分类法的成员吗?

不。术语有slug来支持术语归档。在一些永久性的情况下,两次鼻涕虫会带来很多地雷陷阱或“wontfix”。

是否有一个可能需要这样做的用例?

是:假设您有以下术语:。size 有三种分类法length, widthheight (你也可以考虑颜色)。但由于上述原因,这一点不被支持。

通常,WP核心中的内容是有原因的。我试图理解为什么term\\u id不能成为这个术语的主键-为什么我们也需要分类法?

从看表和运行EXPLAIN, term_id 是主键。我想在更大的系统上,使用(慢速)联接只查询特定于分类法的术语可能比查询所有术语、对它们进行排序并过滤所需内容更快。

结束

相关推荐

Taxonomy Parent Name

我只是想知道如何修改这段代码:<?php $term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) ); echo $term->parent; ?> 。。。要显示父名称,而不仅仅是整数?当前它返回ID。谢谢