WP_COUNT_TERMS() – подсчет термов в таксономии

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 (массив или строка) — старый формат передачи аргументов. Если он указан, то будет интерпретироваться как аргументы, а первый параметр будет восприниматься как таксономия или массив таксономий.

Примеры использования

  1. Подсчет терминов таксономии taxa

    Для версии WordPress 5.6 и выше:

    echo wp_count_terms([ 
       'taxonomy'   => 'taxa', 
       'hide_empty' => false 
    ]);

    Результат будет что-то вроде:

    100
  2. Использование функции на примере 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() для удобного подсчета терминов в ваших таксономиях.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *