- Описание функции
- Примеры использования
- Получение всех терминов в указанной таксономии
- Получение терминов с определенными ID
- Получение терминов с определенными именами
- Получение терминов с определенными слагами
- Получение терминов, отсортированных по количеству объектов
- Получение терминов, скрытых от публикации
- Получение терминов с определенными метаданными
- Вопросы и ответы
- Как получить все термины в указанной таксономии?
- Как отсортировать термины по имени или другому полю?
- Как скрыть термины, которые не привязаны к постам?
- Как получить только определенные термины по их ID или слагу?
- Как исключить определенные термины из результатов запроса?
- Как получить только родительские термины или только дочерние термины?
- Как получить количество терминов в указанной таксономии?
- Как выполнить поиск терминов по их имени или описанию?
- Как получить термины, у которых нет дочерних терминов?
- Связанные элементы
Описание функции
Функция get_terms() используется для получения списка терминов в указанной таксономии или списке таксономий.
Она выполняет запрос к базе данных WordPress и возвращает массив терминов, количество терминов в виде числовой строки или объект WP_Error, если указанные таксономии не существуют.
Использование
get_terms( array|string $args = array(), array|string $deprecated = '' ): WP_Term[]|int[]|string[]|string|WP_Error Функция get_terms() принимает два необязательных параметра: $args и $deprecated. Параметр $args может быть массивом или строкой, содержащей аргументы запроса. Параметр $deprecated используется для обратной совместимости и может быть пустой строкой или массивом.
$args(массив или строка, необязательный): Массив или строка аргументов запроса. См. WP_Term_Query::__construct() для получения информации о принимаемых аргументах.$deprecated(массив или строка, необязательный): Аргументы запроса в старом формате функции. Если указан, этот параметр будет интерпретирован как$args, а первый параметр функции будет обработан как таксономия или массив таксономий.
Функция возвращает массив терминов, количество терминов в виде числовой строки или объект WP_Error, если указанные таксономии не существуют. Дополнительную информацию см. в описании функции.
<?php
$args = array(
'taxonomy' => 'category',
'hide_empty' => false,
'orderby' => 'name',
'order' => 'ASC',
'number' => 10
);
$terms = get_terms( $args );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
// Выводим название термина
echo '<p>' . $term->name . '</p>';
}
} else {
echo 'Нет доступных терминов.';
}
?> В этом примере мы используем функцию get_terms() для получения списка терминов из таксономии «category». Мы устанавливаем параметры запроса, чтобы отобразить все термины, отсортированные по имени в алфавитном порядке, и ограничить количество терминов до 10. Затем мы проверяем, есть ли доступные термины, и выводим их названия.
Примеры использования
Получение всех терминов в указанной таксономии
$terms = get_terms( 'category' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В этом примере мы используем функцию get_terms() для получения всех терминов в таксономии «category». Затем мы проверяем, что полученный результат не пустой и не содержит ошибок, и выводим название каждого термина.
Получение терминов с определенными ID
$term_ids = array( 1, 2, 3 );
$terms = get_terms( array(
'taxonomy' => 'category',
'include' => $term_ids,
) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В этом примере мы используем функцию get_terms() для получения терминов с определенными ID (1, 2, 3) в таксономии «category». Затем мы проверяем, что полученный результат не пустой и не содержит ошибок, и выводим название каждого термина.
Получение терминов с определенными именами
$term_names = array( 'Term 1', 'Term 2', 'Term 3' );
$terms = get_terms( array(
'taxonomy' => 'category',
'name' => $term_names,
) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В этом примере мы используем функцию get_terms() для получения терминов с определенными именами (‘Term 1’, ‘Term 2’, ‘Term 3’) в таксономии «category». Затем мы проверяем, что полученный результат не пустой и не содержит ошибок, и выводим название каждого термина.
Получение терминов с определенными слагами
$term_slugs = array( 'term-1', 'term-2', 'term-3' );
$terms = get_terms( array(
'taxonomy' => 'category',
'slug' => $term_slugs,
) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В этом примере мы используем функцию get_terms() для получения терминов с определенными слагами (‘term-1’, ‘term-2’, ‘term-3’) в таксономии «category». Затем мы проверяем, что полученный результат не пустой и не содержит ошибок, и выводим название каждого термина.
Получение терминов, отсортированных по количеству объектов
$terms = get_terms( array(
'taxonomy' => 'category',
'orderby' => 'count',
'order' => 'DESC',
) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В этом примере мы используем функцию get_terms() для получения терминов в таксономии «category», отсортированных по количеству объектов в порядке убывания. Затем мы проверяем, что полученный результат не пустой и не содержит ошибок, и выводим название каждого термина.
Получение терминов, скрытых от публикации
$terms = get_terms( array(
'taxonomy' => 'category',
'hide_empty' => false,
) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В этом примере мы используем функцию get_terms() для получения всех терминов в таксономии «category», включая те, которые не назначены ни одному посту. Затем мы проверяем, что полученный результат не пустой и не содержит ошибок, и выводим название каждого термина.
Получение терминов с определенными метаданными
$terms = get_terms( array(
'taxonomy' => 'category',
'meta_key' => 'color',
'meta_value' => 'red',
'meta_compare' => 'LIKE',
) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В этом примере мы используем функцию get_terms() для получения терминов в таксономии «category», у которых мета-поле «color» содержит значение «red». Затем мы проверяем, что полученный результат не пустой и не содержит ошибок, и выводим название каждого термина.
Вопросы и ответы
Как получить все термины в указанной таксономии?
Для получения всех терминов в указанной таксономии используется функция get_terms(). Она принимает массив или строку аргументов и возвращает массив терминов, количество терминов в виде числовой строки или WP_Error, если таксономии не существует.
Пример использования:
$terms = get_terms( 'taxonomy_name' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo '<p>' . $term->name . '</p>';
}
}
Как отсортировать термины по имени или другому полю?
Для сортировки терминов по имени или другому полю используется параметр orderby функции get_terms(). Значение этого параметра может быть одним из следующих: ‘name’, ‘slug’, ‘term_group’, ‘term_id’, ‘id’, ‘description’, ‘parent’, ‘term_order’, ‘count’, ‘include’, ‘slug__in’, ‘meta_value’, ‘meta_value_num’, ‘none’.
Пример использования для сортировки по имени:
$terms = get_terms( array(
'taxonomy' => 'taxonomy_name',
'orderby' => 'name',
) );
Как скрыть термины, которые не привязаны к постам?
Для скрытия терминов, которые не привязаны к постам, используется параметр hide_empty функции get_terms(). Значение этого параметра может быть 1 (true) или 0 (false).
Пример использования для скрытия пустых терминов:
$terms = get_terms( array(
'taxonomy' => 'taxonomy_name',
'hide_empty' => true,
) );
Как получить только определенные термины по их ID или слагу?
Для получения только определенных терминов по их ID или слагу, необходимо использовать параметр include или slug в функции get_terms().
Пример использования параметра include:
$args = array(
'taxonomy' => 'category',
'include' => array(1, 2, 3)
);
$terms = get_terms( $args );
Пример использования параметра slug:
$args = array(
'taxonomy' => 'category',
'slug' => array('term1', 'term2', 'term3')
);
$terms = get_terms( $args );
Как исключить определенные термины из результатов запроса?
Для исключения определенных терминов из результатов запроса, необходимо использовать параметр exclude в функции get_terms().
Пример использования параметра exclude:
$args = array(
'taxonomy' => 'category',
'exclude' => array(4, 5, 6)
);
$terms = get_terms( $args );
Как получить только родительские термины или только дочерние термины?
Для получения только родительских терминов или только дочерних терминов, необходимо использовать параметры parent или child_of в функции get_terms().
Пример использования параметра parent для получения только родительских терминов:
$args = array(
'taxonomy' => 'category',
'parent' => 0
);
$terms = get_terms( $args );
Пример использования параметра child_of для получения только дочерних терминов:
$args = array(
'taxonomy' => 'category',
'child_of' => 1
);
$terms = get_terms( $args );
Как получить количество терминов в указанной таксономии?
Для получения количества терминов в указанной таксономии можно использовать функцию get_terms() с параметром count установленным в true. Возвращаемое значение будет числовой строкой, представляющей количество терминов.
$taxonomy = 'category';
$count = get_terms( array(
'taxonomy' => $taxonomy,
'count' => true,
) );
echo 'Количество терминов в таксономии ' . $taxonomy . ': ' . $count;
Как выполнить поиск терминов по их имени или описанию?
Для выполнения поиска терминов по их имени или описанию можно использовать параметры name__like и description__like функции get_terms(). Параметры принимают строку, которая будет использоваться в SQL-запросе с подстановкой символов подстановки.
$search_term = 'apple';
$terms = get_terms( array(
'taxonomy' => 'fruits',
'name__like' => $search_term,
'description__like' => $search_term,
) );
foreach ( $terms as $term ) {
echo $term->name . '<br>';
}
Как получить термины, у которых нет дочерних терминов?
Для получения терминов, у которых нет дочерних терминов, можно использовать параметр childless функции get_terms(). Параметр принимает значение true для ограничения результатов только терминами без дочерних терминов.
$terms = get_terms( array(
'taxonomy' => 'fruits',
'childless' => true,
) );
foreach ( $terms as $term ) {
echo $term->name . '<br>';
}
Функция
get_terms()позволяет получить термины в указанной таксономии или списке таксономий. Она предоставляет широкие возможности для работы с терминами, включая получение количества терминов, выполнение поиска по имени или описанию, а также получение терминов без дочерних терминов. Это мощный инструмент для разработчиков WordPress, который позволяет эффективно управлять таксономиями и терминами.
Связанные элементы
- Функция
get_term(): Получает объект термина по его ID. - Функция
wp_count_terms(): Возвращает количество терминов в указанной таксономии. - Функция
get_term_by(): Получает объект термина по указанному полю и значению. - Хук
get_terms_args: Фильтрует аргументы запроса для функцииget_terms. - Хук
get_terms: Фильтрует результаты запроса функцииget_terms. - Хук
get_terms_orderby: Фильтрует поле сортировки запроса функцииget_terms. - Класс
WP_Term_Query: Класс для выполнения запросов к терминам. - Класс
WP_Error: Класс для представления ошибок WordPress. - Класс
WP_Term: Класс для представления термина WordPress.