WP_COUNT_TERMS() – Подсчет термов в таксономии
Функция wp_count_terms() позволяет узнать, сколько терминов (термов) содержится в определенной таксономии �� WordPress.
Описание функции
wp_count_terms() возвращает количество терминов в заданной таксономии. У неё есть параметр $args, который по умолчанию установлен на hide_empty, что означает скрытие пустых терминов. Этот параметр можно использовать как строку: hide_empty=true, или в виде массива: array('hide_empty' => true).
Время выполнения
- Один раз: 0.000664 сек (медленно)
- 50000 раз: 26 сек (медленно)
Возвращаемые значения
Функция может вернуть:
- Строку — число, представляющее количество терминов в таксономии.
- WP_Error — если таксономия не существует.
Применение функции
wp_count_terms( $args, $deprecated );
- $args (массив или строка) — аргументы для функции. Чтобы узнать, какие аргументы можно использовать, смотрите встроенный класс
WP_Term_Query::__construct(). По умолчанию это пустой массив. - $deprecated (массив или строка) — старый формат передачи аргументов. Если он указан, то будет интерпретироваться как аргументы, а первый параметр будет восприниматься как таксономия или массив таксономий.
Примеры использования
-
Подсчет терминов таксономии
taxaДля версии WordPress 5.6 и выше:
echo wp_count_terms([ 'taxonomy' => 'taxa', 'hide_empty' => false ]);Результат будет что-то вроде:
100 -
Использование функции на примере
taxaПредположим, у нас есть таксономия
taxa, которая содержит 50 элементов, имеющих посты, и 50 пустых элементов.- Подсчет всех элементов, включая пустые:
echo wp_count_terms('taxa', 'hide_empty=0'); // > 100- Подсчет только тех элементов, которые имеют посты:
echo wp_count_terms('taxa', 'hide_empty=1'); // > 50- Можно также передать аргументы в виде массива:
echo wp_count_terms('taxa', ['hide_empty'=>1]); // > 50- Проверьте, если термов больше 0:
$count = wp_count_terms('taxa', ['hide_empty'=>1]); if (!is_wp_error($count)) { echo $count; // > 50 }
Изменения
- С версии 2.3.0 функция была внедрена.
- С версии 5.6.0 изменился способ передачи аргументов: теперь массив
$argsможет быть передан как первый параметр.
Код функции
Вот как выглядит сама функция wp_count_terms в файле taxonomy.php:
function wp_count_terms( $args = array(), $deprecated = '' ) {
$use_legacy_args = false;
// Проверяем, используется ли устаревший формат: $taxonomy и $args.
if ( $args &&
( is_string( $args ) && taxonomy_exists( $args )
|| is_array( $args ) && wp_is_numeric_array( $args ) )
) {
$use_legacy_args = true;
}
$defaults = array( 'hide_empty' => false );
if ( $use_legacy_args ) {
$defaults['taxonomy'] = $args;
$args = $deprecated;
}
$args = wp_parse_args( $args, $defaults );
// Обратная совместимость.
if ( isset( $args['ignore_empty'] ) ) {
$args['hide_empty'] = $args['ignore_empty'];
unset( $args['ignore_empty'] );
}
$args['fields'] = 'count';
return get_terms( $args );
}
Теперь вы можете использовать wp_count_terms() для удобного подсчета терминов в ваших таксономиях.