_get_term_children()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
_get_term_children( int $term_id, array $terms, string $taxonomy, array $ancestors = array() ): array|WP_Error
Описание
Если $terms — массив объектов, то _get_term_children() возвращает массив объектов.
Если $terms — массив ID, то _get_term_children() возвращает массив ID.
Оригинал (английский)
If $terms is an array of objects, then _get_term_children() returns an array of objects.
If $terms is an array of IDs, then _get_term_children() returns an array of IDs.
Параметры
$term_id
int
обязательный
$terms
array
обязательный
$taxonomy
string
обязательный
$ancestors
array
необязательный
= array()
Возвращаемое значение
array|WP_Error
Исходный код
wp-includes/taxonomy.php:3972
function _get_term_children( $term_id, $terms, $taxonomy, &$ancestors = array() ) {
$empty_array = array();
if ( empty( $terms ) ) {
return $empty_array;
}
$term_id = (int) $term_id;
$term_list = array();
$has_children = _get_term_hierarchy( $taxonomy );
if ( $term_id && ! isset( $has_children[ $term_id ] ) ) {
return $empty_array;
}
// Include the term itself in the ancestors array, so we can properly detect when a loop has occurred.
if ( empty( $ancestors ) ) {
$ancestors[ $term_id ] = 1;
}
foreach ( (array) $terms as $term ) {
$use_id = false;
if ( ! is_object( $term ) ) {
$term = get_term( $term, $taxonomy );
if ( is_wp_error( $term ) ) {
return $term;
}
$use_id = true;
}
// Don't recurse if we've already identified the term as a child - this indicates a loop.
if ( isset( $ancestors[ $term->term_id ] ) ) {
continue;
}
if ( (int) $term->parent === $term_id ) {
if ( $use_id ) {
$term_list[] = $term->term_id;
} else {
$term_list[] = $term;
}
if ( ! isset( $has_children[ $term->term_id ] ) ) {
continue;
}
$ancestors[ $term->term_id ] = 1;
$children = _get_term_children( $term->term_id, $terms, $taxonomy, $ancestors );
if ( $children ) {
$term_list = array_merge( $term_list, $children );
}
}
}
return $term_list;
}
История изменений
| Версия | Описание |
|---|---|
| 2.3.0 | Introduced. |

