从层次分类中获取父代和子代

时间:2019-02-19 作者:LovinQuaQua

我有一个层次分类法,我只想显示来自一个父对象的子对象。

例如,分类法如下所示:

- 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);
    }
}
例如,我是否可以修改这行代码,以便仅从事件中获取子级?

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

是的,你可以。

get_terms 函数takes$args 作为第一个参数。您可以使用与WP_Term_Query.

您可能感兴趣的两个论点是:

  • child_of - (int)要检索的子术语的术语ID。如果传递了多个分类法,则忽略的$child\\u。默认值0
  • parent - (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再也不能打印代码了。

相关推荐

如何在新用户注册时将wp_USERS->用户登录名插入到wp_Terms中?

当新用户注册时,我需要将wp\\u users->user\\u login字段插入wp\\u terms name和slug字段。我的要求是管理员需要将帖子分配给特定用户,也就是说管理员需要向user1添加帖子,但user2不应该看到这一点。为此,我创建了一个自定义帖子,并为此添加了分类法。术语是用户用户名。因此,我需要在分类法中将用户的用户名作为术语列出。当一个新用户注册时,他的用户名也应该在wp\\u terms表中更新,所以我将用户名作为terms。我在这里绊倒了。请对此提出一些解决方案