функция since 4.9.3

wp_check_for_changed_dates()

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

Сигнатура

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

Описание

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

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

The function is used when a post object of any type is updated, by comparing the current and previous post objects.

If the date was changed and not already part of the old dates then it will be added to the post meta field (‘_wp_old_date’) for storing old dates for that post.

The most logically usage of this function is redirecting changed post objects, so that those that linked to an changed post will be redirected to the new post.

Параметры

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

Исходный код

wp-includes/post.php:7390

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.

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

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