# Получение дочерних элементов термина (GET_TERM_CHILDREN())
Функция get_term_children() объединяет всех дочерних терминов в один массив их идентификаторов. Эта рекурсивная функция полезна только для иерархических таксономий.
Если термина не существует в заданной таксономии, функция вернёт пустой массив.
## Возвращаемое значение
Функц��я возвращает массив идентификаторов терминов или объект WP_Error, если таксономия не существует.
## Применение
```php
get_term_children( $term_id, $taxonomy );
Параметры
$term_id(int) — обязательный параметр, идентификатор термина, для которого нужно получить дочерние элементы.$taxonomy(string) — обязательный параметр, название таксономии.
Примеры использования
Пример 1: Получение и отображение дочерних терминов
Предположим, мы хотим отобразить названия дочерних секций термина с идентификатором 10 в виде ссылок на соответствующие страницы архивов:
$term_id = 10; // ID текущей категории (можно получить динамически)
$tax_name = 'products'; // Название таксономии
$term_childs = get_term_children( $term_id, $tax_name );
echo '';
foreach ( $term_childs as $child ) {
$term = get_term_by( 'id', $child, $tax_name ); // Получаем термин по ID
echo '- ' . esc_html( $term->name ) . '
';
}
echo '
';
Результат выполнения кода
При выполнении данного кода на экран будет выведен следующий HTML:
Хронология изменений
- С версии 2.3.0 функция была добавлена в WordPress.
Код функции get_term_children()
Ниже представлен код функции, который вы можете использовать для понимания ее работы:
function get_term_children( $term_id, $taxonomy ) {
if ( ! taxonomy_exists( $taxonomy ) ) {
return new WP_Error( 'invalid_taxonomy', __( 'Недействительная таксономия.' ) );
}
$term_id = (int) $term_id;
$terms = _get_term_hierarchy( $taxonomy );
if ( ! isset( $terms[ $term_id ] ) ) {
return array();
}
$children = $terms[ $term_id ];
foreach ( (array) $terms[ $term_id ] as $child ) {
if ( $term_id === $child ) {
continue;
}
if ( isset( $terms[ $child ] ) ) {
$children = array_merge( $children, get_term_children( $child, $taxonomy ) );
}
}
return $children;
}
Связанные функции
cat_is_ancestor_of()get_adjacent_post()get_ancestors()get_category_parents()get_next_post()get_post_ancestors()get_previous_post()
Таксономии
edit_term_link()get_taxonomies()register_taxonomy()taxonomy_exists()
Эти функции помогут вам лучше понимать, как работать с терминами и таксономиями в WordPress.