_wp_post_revision_data()WP 4.5.0

Returns a post array ready to be inserted into the posts table as a post revision.

Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.

No Hooks.

Return

Array. Post array ready to be inserted as a post revision.

Usage

_wp_post_revision_data( $post, $autosave );
$post(array|WP_Post)
A post array or a WP_Post object to be processed for insertion as a post revision.
Default: empty array
$autosave(true|false)
Is the revision an autosave? Default false.
Default: false

Changelog

Since 4.5.0 Introduced.

_wp_post_revision_data() code WP 6.5.2

function _wp_post_revision_data( $post = array(), $autosave = false ) {
	if ( ! is_array( $post ) ) {
		$post = get_post( $post, ARRAY_A );
	}

	$fields = _wp_post_revision_fields( $post );

	$revision_data = array();

	foreach ( array_intersect( array_keys( $post ), array_keys( $fields ) ) as $field ) {
		$revision_data[ $field ] = $post[ $field ];
	}

	$revision_data['post_parent']   = $post['ID'];
	$revision_data['post_status']   = 'inherit';
	$revision_data['post_type']     = 'revision';
	$revision_data['post_name']     = $autosave ? "$post[ID]-autosave-v1" : "$post[ID]-revision-v1"; // "1" is the revisioning system version.
	$revision_data['post_date']     = isset( $post['post_modified'] ) ? $post['post_modified'] : '';
	$revision_data['post_date_gmt'] = isset( $post['post_modified_gmt'] ) ? $post['post_modified_gmt'] : '';

	return $revision_data;
}