我有一个层次分类法,我只想显示来自一个父对象的子对象。
例如,分类法如下所示:
- Events
-- Location
-- Date
- Region
-- State
-- StateCode
当我使用代码时,我会得到所有子值。。。
$terms = get_terms( array(
\'taxonomy\' => \'events_category\',
\'hide_empty\' => false,
) );
foreach ($terms as $term) {
if ($term->parent != 0) { // avoid parent categories
$options[] = array(\'label\' => $term->name, \'value\' => $term->term_id, \'id\' => $term->term_id);
}
}
例如,我是否可以修改这行代码,以便仅从事件中获取子级?
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
是的,你可以。
get_terms
函数takes$args
作为第一个参数。您可以使用与WP_Term_Query
.
您可能感兴趣的两个论点是:
child_of
- (int)要检索的子术语的术语ID。如果传递了多个分类法,则忽略的$child\\u。默认值0parent
- (int | string)要检索的直接子项的父项ID
因此,如果您只想获取事件术语的子术语,那么可以使用以下代码:
$terms = get_terms( array(
\'taxonomy\' => \'events_category\',
\'hide_empty\' => false,
\'child_of\' => <EVENTS_TERM_ID>, // <-- you have to replace this with the term id of Events term.
) );
这样你就不需要任何
if
再也不能打印代码了。