# wp_autosave_post_revisioned_meta_fields()

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

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

## Сигнатура

```php
wp_autosave_post_revisioned_meta_fields( array $new_autosave )
```

## Описание

Перебирает метаполя, включённые в ревизии, и проверяет каждое из них: заданы ли они и изменилось ли их значение. Если да, значение метаданных сохраняется и привязывается к автосохранению.

## Параметры

- `$new_autosave` `array` — обязательный. Новые данные записи, которые автоматически сохраняются.

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

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

```php
function wp_autosave_post_revisioned_meta_fields( $new_autosave ) {
	/*
	 * The post data arrives as either $_POST['data']['wp_autosave'] or the $_POST
	 * itself. This sets $posted_data to the correct variable.
	 *
	 * Ignoring sanitization to avoid altering meta. Ignoring the nonce check because
	 * this is hooked on inner core hooks where a valid nonce was already checked.
	 */
	$posted_data = $_POST['data']['wp_autosave'] ?? $_POST;

	$post_type = get_post_type( $new_autosave['post_parent'] );

	/*
	 * Go through the revisioned meta keys and save them as part of the autosave,
	 * if the meta key is part of the posted data, the meta value is not blank,
	 * and the meta value has changes from the last autosaved value.
	 */
	foreach ( wp_post_revision_meta_keys( $post_type ) as $meta_key ) {

		if ( isset( $posted_data[ $meta_key ] )
			&& get_post_meta( $new_autosave['ID'], $meta_key, true ) !== wp_unslash( $posted_data[ $meta_key ] )
		) {
			/*
			 * Use the underlying delete_metadata() and add_metadata() functions
			 * vs delete_post_meta() and add_post_meta() to make sure we're working
			 * with the actual revision meta.
			 */
			delete_metadata( 'post', $new_autosave['ID'], $meta_key );

			// One last check to ensure meta value is not empty.
			if ( ! empty( $posted_data[ $meta_key ] ) ) {
				// Add the revisions meta data to the autosave.
				add_metadata( 'post', $new_autosave['ID'], $meta_key, $posted_data[ $meta_key ] );
			}
		}
	}
}
```

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

- 6.4.0 — Introduced.

## Связанные

Использует: [`wp_post_revision_meta_keys`](https://chugunov.pro/api-wordpress/functions/wp_post_revision_meta_keys/), [`get_post_type`](https://chugunov.pro/api-wordpress/functions/get_post_type/), [`delete_metadata`](https://chugunov.pro/api-wordpress/functions/delete_metadata/), [`add_metadata`](https://chugunov.pro/api-wordpress/functions/add_metadata/), [`wp_unslash`](https://chugunov.pro/api-wordpress/functions/wp_unslash/), [`get_post_meta`](https://chugunov.pro/api-wordpress/functions/get_post_meta/).

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