WordPress Version: 5.4
/**
* Returns a post array ready to be inserted into the posts table as a post revision.
*
* @since 4.5.0
* @access private
*
* @param array|WP_Post $post Optional. A post array or a WP_Post object to be processed
* for insertion as a post revision. Default empty array.
* @param bool $autosave Optional. Is the revision an autosave? Default false.
* @return array Post array ready to be inserted as a post revision.
*/
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;
}