Функция get_term_children()
в WordPress позволяет получать все дочерние термины для заданного термина таксономии. Это особенно полезно для иерархических таксономий, таких как категории, где термины могут иметь подкатегории.
get_term_children( int $term_id, string $taxonomy ): array|WP_Error
Параметры
- $term_id (обязательный): ID термина, для которого нужно получить дочерние элементы.
- $taxonomy (обязательный): название таксономии, к которой принадлежит термин.
Возвращаемое значение
Функция возвращает массив ID дочерних терминов. Если возникает ошибка, например, если таксономия не существует, будет возвращен объект WP_Error
. Если термин существует в таксономии, но не имеет дочерних терминов, будет возвращен пустой массив.
Пример 1: Базовое использование
В этом примере мы получим дочерние термины для элемента таксономии с ID 123 и выведем их в виде ненумерованного списка:
$term_id = 123; // ID термина
$taxonomy_name = 'products'; // Название таксономии
$term_children = get_term_children($term_id, $taxonomy_name);
echo '<ul>';
foreach ($term_children as $child) {
$term = get_term_by('id', $child, $taxonomy_name);
echo '<li><a href="' . esc_url(get_term_link($child, $taxonomy_name)) . '">' . esc_html($term->name) . '</a></li>';
}
echo '</ul>';
После выполнения этого кода мы получим следующий HTML-код:
<ul>
<li><a href="link_to_term_page">Название термина 1</a></li>
<li><a href="link_to_term_page">Название термина 2</a></li>
</ul>
Пример 2: Обработка ошибок
В этом примере мы обработаем возможные ошибки, которые могут возникнуть при получении дочерних терминов:
$term_id = 123; // ID термина
$taxonomy_name = 'products'; // Название таксономии
$term_children = get_term_children($term_id, $taxonomy_name);
if (is_wp_error($term_children)) {
echo 'Ошибка: ' . $term_children->get_error_message();
} else {
echo '<ul>';
foreach ($term_children as $child) {
$term = get_term_by('id', $child, $taxonomy_name);
echo '<li><a href="' . esc_url(get_term_link($child, $taxonomy_name)) . '">' . esc_html($term->name) . '</a></li>';
}
echo '</ul>';
}
Пример 3: Получение всех уровней дочерних терминов
Функция get_term_children()
может использоваться для получения всех уровней дочерних терминов в иерархии. Например, если у термина есть подкатегории и подкатегории подкатегорий, функция вернет их все в одном массиве:
$term_id = 123; // ID термина
$taxonomy_name = 'category'; // Название таксономии
$all_children = get_term_children($term_id, $taxonomy_name);
if (!empty($all_children)) {
echo '<ul>';
foreach ($all_children as $child_id) {
$term = get_term_by('id', $child_id, $taxonomy_name);
echo '<li><a href="' . esc_url(get_term_link($term)) . '">' . esc_html($term->name) . '</a></li>';
}
echo '</ul>';
} else {
echo 'У данного термина нет дочерних элементов.';
}
Заключение
Функция get_term_children()
является мощным инструментом для работы с иерархическими таксономиями в WordPress. Она позволяет легко получать дочерние элементы термина и строить навигацию по терминам таксономии. Используйте её для создания более организованных и удобных для пользователя сайтов, где термины могут иметь подкатегории.