为什么不使用层次分类法?我想不出比你所描述的更好地使用层次结构了。就您所感知的劣势而言:
当与植物(例如:科、属和种)关联时,管理员需要选择所有适用的分类部分
Rhamnaceae
- Ziziphus
-- Ziziphus Jujuba
如果你检查
Ziziphus Jujuba
然后,该工厂岗位自动处于
Ziziphus
组,并自动在
Rhamnaceae
组
从程序上讲,我失去了从属中寻找家族的能力
您始终可以通过检查术语的父项来追踪术语“上树”。get_term()
返回具有属性的对象parent
这是0
当它是顶级术语时,如果不是,则为其父项的ID号。
例如,假设您所在的工厂岗位在Ziziphus Jujuba
组
// get all the terms for a particular post
$plant_terms = wp_get_post_terms( get_the_ID(), \'plant_class\' );
//assuming there are terms to loop through
if( $plant_terms && !is_wp_error($plant_terms)) {
//lets pop off the first term (shouldn\'t there be only one?)
$plant_term = array_shift($plant_terms);
//check that term\'s parent ID and follow it upwards
//when you get to a top-level term $plant_term->parent = 0
//so the loop will break
while ( $plant_term->parent > 0 ){
$plant_term = get_term( $plant_term->parent );
}
//this should echo the family name
echo $plant_term->name;
}
我想你能做到
while
循环更复杂,可能有一个计数器,以了解您何时处于哪个级别。
我看到的潜在陷阱是
仅将输入限制在第三个“物种”级别。我的Radio Buttons for Taxonomies plugin 可以帮助您将输入限制为单一输入,但不会强制它成为“物种”级别。(FWIW-它需要更新以修复添加术语的错误,但我正在努力)。虽然也许你可以使用我的插件并使用一点jQuery来限制输入