функция since 3.3.0

_update_term_count_on_transition_post_status()

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

_update_term_count_on_transition_post_status( string $new_status, string $old_status, WP_Post $post )

Описание

Например, стандартные счётчики терминов для записей (в произвольных таксономиях) не учитывают приватные записи и черновики.

Оригинал (английский)

For example, default posts term counts (for custom taxonomies) don’t include private / draft posts.

Параметры

$new_status string обязательный
Новый статус записи.
$old_status string обязательный
Прежний статус записи.
$post WP_Post обязательный
Объект записи.

Исходный код

wp-includes/post.php:8222

function _update_term_count_on_transition_post_status( $new_status, $old_status, $post ) {
	if ( $new_status === $old_status ) {
		return;
	}

	// Update counts for the post's terms.
	foreach ( (array) get_object_taxonomies( $post->post_type, 'objects' ) as $taxonomy ) {
		/** This filter is documented in wp-includes/taxonomy.php */
		$counted_statuses = apply_filters( 'update_post_term_count_statuses', array( 'publish' ), $taxonomy );

		/*
		 * Do not recalculate term count if both the old and new status are not included in term counts.
		 * This accounts for a transition such as draft -> pending.
		 */
		if ( ! in_array( $old_status, $counted_statuses, true ) && ! in_array( $new_status, $counted_statuses, true ) ) {
			continue;
		}

		/*
		 * Do not recalculate term count if both the old and new status are included in term counts.
		 *
		 * This accounts for transitioning between statuses which are both included in term counts. This can only occur
		 * if the `update_post_term_count_statuses` filter is in use to count more than just the 'publish' status.
		 */
		if ( in_array( $old_status, $counted_statuses, true ) && in_array( $new_status, $counted_statuses, true ) ) {
			continue;
		}

		$tt_ids = wp_get_object_terms( $post->ID, $taxonomy->name, array( 'fields' => 'tt_ids' ) );
		wp_update_term_count( $tt_ids, $taxonomy->name );
	}
}

История изменений

ВерсияОписание
3.3.0 Introduced.

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.