# wp_restore_post_revision()

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

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

## Сигнатура

```php
wp_restore_post_revision( int|WP_Post $revision, array $fields = null ): int|false|null
```

## Описание

Может восстановить прошлую редакцию, используя все поля редакции записи или только выбранные поля.

## Параметры

- `$revision` `int|WP_Post` — обязательный. Идентификатор редакции или объект редакции.
- `$fields` `array` — необязательный, по умолчанию `null`. Из каких полей выполнять восстановление. По умолчанию — все.

## Возвращаемое значение

`int|false|null`

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

Файл: `wp-includes/revision.php:462`

```php
function wp_restore_post_revision( $revision, $fields = null ) {
	$revision = wp_get_post_revision( $revision, ARRAY_A );

	if ( ! $revision ) {
		return $revision;
	}

	if ( ! is_array( $fields ) ) {
		$fields = array_keys( _wp_post_revision_fields( $revision ) );
	}

	$update = array();
	foreach ( array_intersect( array_keys( $revision ), $fields ) as $field ) {
		$update[ $field ] = $revision[ $field ];
	}

	if ( ! $update ) {
		return false;
	}

	$update['ID'] = $revision['post_parent'];

	$update = wp_slash( $update ); // Since data is from DB.

	$post_id = wp_update_post( $update );

	if ( ! $post_id || is_wp_error( $post_id ) ) {
		return $post_id;
	}

	// Update last edit user.
	update_post_meta( $post_id, '_edit_last', get_current_user_id() );

	/**
	 * Fires after a post revision has been restored.
	 *
	 * @since 2.6.0
	 *
	 * @param int $post_id     Post ID.
	 * @param int $revision_id Post revision ID.
	 */
	do_action( 'wp_restore_post_revision', $post_id, $revision['ID'] );

	return $post_id;
}
```

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

- 2.6.0 — Introduced.

## Связанные

Использует: [`wp_update_post`](https://chugunov.pro/api-wordpress/functions/wp_update_post/), [`update_post_meta`](https://chugunov.pro/api-wordpress/functions/update_post_meta/), [`wp_get_post_revision`](https://chugunov.pro/api-wordpress/functions/wp_get_post_revision/), [`_wp_post_revision_fields`](https://chugunov.pro/api-wordpress/functions/_wp_post_revision_fields/), [`wp_slash`](https://chugunov.pro/api-wordpress/functions/wp_slash/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/), [`get_current_user_id`](https://chugunov.pro/api-wordpress/functions/get_current_user_id/), [`is_wp_error`](https://chugunov.pro/api-wordpress/functions/is_wp_error/).
Используется в: `wp_xmlrpc_server::wp_restoreRevision`.

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