# wp_check_for_changed_dates()

URL: https://chugunov.pro/api-wordpress/functions/wp_check_for_changed_dates/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 4.9.3.

## Сигнатура

```php
wp_check_for_changed_dates( int $post_id, WP_Post $post, WP_Post $post_before )
```

## Описание

Функция вызывается при обновлении объекта записи любого типа и сравнивает текущий и предыдущий объекты записи.
Если дата изменилась и ещё не входит в список старых дат, она добавляется в поле метаданных записи («_wp_old_date»), где хранятся старые даты этой записи.
Наиболее логичное применение этой функции — перенаправление изменённых объектов записей, чтобы ссылки на изменённую запись перенаправлялись на новую запись.

## Параметры

- `$post_id` `int` — обязательный. Идентификатор записи.
- `$post` `WP_Post` — обязательный. Объект записи.
- `$post_before` `WP_Post` — обязательный. Предыдущий объект записи.

## Исходный код

Файл: `wp-includes/post.php:7390`

```php
function wp_check_for_changed_dates( $post_id, $post, $post_before ) {
	$previous_date = gmdate( 'Y-m-d', strtotime( $post_before->post_date ) );
	$new_date      = gmdate( 'Y-m-d', strtotime( $post->post_date ) );

	// Don't bother if it hasn't changed.
	if ( $new_date === $previous_date ) {
		return;
	}

	// We're only concerned with published, non-hierarchical objects.
	if ( ! ( 'publish' === $post->post_status || ( 'attachment' === $post->post_type && 'inherit' === $post->post_status ) )
		|| is_post_type_hierarchical( $post->post_type )
	) {
		return;
	}

	$old_dates = (array) get_post_meta( $post_id, '_wp_old_date' );

	// If we haven't added this old date before, add it now.
	if ( ! empty( $previous_date ) && ! in_array( $previous_date, $old_dates, true ) ) {
		add_post_meta( $post_id, '_wp_old_date', $previous_date );
	}

	// If the new slug was used previously, delete it from the list.
	if ( in_array( $new_date, $old_dates, true ) ) {
		delete_post_meta( $post_id, '_wp_old_date', $new_date );
	}
}
```

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

- 4.9.3 — Introduced.

## Связанные

Использует: [`add_post_meta`](https://chugunov.pro/api-wordpress/functions/add_post_meta/), [`delete_post_meta`](https://chugunov.pro/api-wordpress/functions/delete_post_meta/), [`is_post_type_hierarchical`](https://chugunov.pro/api-wordpress/functions/is_post_type_hierarchical/), [`get_post_meta`](https://chugunov.pro/api-wordpress/functions/get_post_meta/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_check_for_changed_dates/
