# _wp_put_post_revision()

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

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

## Сигнатура

```php
_wp_put_post_revision( int|WP_Post|array|null $post = null, bool $autosave = false ): int|WP_Error
```

## Описание

Вставляет данные записи в таблицу записей в качестве редакции записи.

## Параметры

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

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

`int|WP_Error` — WP_Error

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

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

```php
function _wp_put_post_revision( $post = null, $autosave = false ) {
	if ( is_object( $post ) ) {
		$post = get_object_vars( $post );
	} elseif ( ! is_array( $post ) ) {
		$post = get_post( $post, ARRAY_A );
	}

	if ( ! $post || empty( $post['ID'] ) ) {
		return new WP_Error( 'invalid_post', __( 'Invalid post ID.' ) );
	}

	if ( isset( $post['post_type'] ) && 'revision' === $post['post_type'] ) {
		return new WP_Error( 'post_type', __( 'Cannot create a revision of a revision' ) );
	}

	$post = _wp_post_revision_data( $post, $autosave );
	$post = wp_slash( $post ); // Since data is from DB.

	$revision_id = wp_insert_post( $post, true );
	if ( is_wp_error( $revision_id ) ) {
		return $revision_id;
	}

	if ( $revision_id ) {
		/**
		 * Fires once a revision has been saved.
		 *
		 * @since 2.6.0
		 * @since 6.4.0 The `$post_id` parameter was added.
		 *
		 * @param int $revision_id Post revision ID.
		 * @param int $post_id     Post ID.
		 */
		do_action( '_wp_put_post_revision', $revision_id, $post['post_parent'] );
	}

	return $revision_id;
}
```

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

- 2.6.0 — Introduced.

## Связанные

Использует: [`_wp_post_revision_data`](https://chugunov.pro/api-wordpress/functions/_wp_post_revision_data/), [`wp_insert_post`](https://chugunov.pro/api-wordpress/functions/wp_insert_post/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`wp_slash`](https://chugunov.pro/api-wordpress/functions/wp_slash/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/), [`get_post`](https://chugunov.pro/api-wordpress/functions/get_post/), [`is_wp_error`](https://chugunov.pro/api-wordpress/functions/is_wp_error/), `WP_Error::__construct`.
Используется в: `WP_REST_Autosaves_Controller::create_post_autosave`, [`wp_create_post_autosave`](https://chugunov.pro/api-wordpress/functions/wp_create_post_autosave/), [`wp_save_post_revision`](https://chugunov.pro/api-wordpress/functions/wp_save_post_revision/).

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