Как использовать функцию wp_update_term_count() в WordPress: подробное руководство

WP_UPDATE_TERM_COUNT() │ WP 2.3.0

Функция wp_update_term_count() обновляет количество терминов в таксономии WordPress. Таксономия — это способ группировки контента, например, категории и теги.

Что делает эта функция?

Когда вы вызываете эту функцию, она считает, сколько терминов связано с определённым идентификатором термина, и затем обновляет базу данных. Если для таксономии применён обратный вызов, он будет вызван для обновления счетчика.

Возвращаемое значение

  • true или false: Если нет терминов, функция вернет false. Если всё прошло успешно, будет возвращено true.

Использование функции

Синтаксис

wp_update_term_count( $terms, $taxonomy, $do_deferred );

Параметры

  • $terms (int|array) (обязательный): ID терминов или массив с ID терминов, которые нужно обновить.
  • $taxonomy (string) (обязательный): Контекст термина (например, "category").
  • $do_deferred (true|false): Указывает, нужно ли сбрасывать отложенные вычисления количества терминов. По умолчанию false.

Пример

Обновление количества постов в категориях

Например, если вы добавляете новый пост, вы можете обновить количество постов в категориях 12 и 13, используя следующую функцию:

wp_update_term_count( [ 12, 13 ], 'category' );

Как работает функция

Код функции

Вот как выглядит код функции wp_update_term_count():


function wp_update_term_count( $terms, $taxonomy, $do_deferred = false ) {
static $_deferred = array();

if ( $do_deferred ) {
    foreach ( (array) array_keys( $_deferred ) as $tax ) {
        wp_update_term_count_now( $_deferred[ $tax ], $tax );
        unset( $_deferred[ $tax ] );
    }
}

if ( empty( $terms ) ) {
    return false;
}

if ( ! is_array( $terms ) ) {
    $terms = array( $terms );
}

if ( wp_defer_term_counting() ) {
    if ( ! isset( $_deferred[ $taxonomy ] ) ) {
        $_deferred[ $taxonomy ] = array();
    }
    $_deferred[ $taxonomy ] = array_unique( array_merge( $_deferred[ $taxonomy ], $terms ) );
    return true;
}

return wp_update_term_count_now( $terms, $taxonomy );

}

Связанные функции

Существует множество функций, связанных с терминами и таксономиями в WordPress:

  • category_exists(): Проверяет, существует ли категория.
  • get_term(): Получает информацию о термине.
  • get_terms(): Получает список терминов.
  • has_term(): Проверяет, есть ли у объекта определённый термин.
  • wp_insert_category(): Добавляет новую категорию.

Заключение

Функция wp_update_term_count() полезна для обновления счетчиков терминов в таксономиях и служит важным инструментом для под��ержки актуальности данных на вашем сайте. Применение этой функции поможет правильно учитывать количество постов по категориям и тегам.

Leave a Reply

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