функция
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. |

