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

Restores a post to the specified revision.

Description

Can restore a past revision using all fields of the post revision, or only selected fields.

Parameters

$revisionint|WP_Postrequired
Revision ID or revision object.
$fieldsarrayoptional
What fields to restore from. Defaults to all.

Default:null

Return

int|false|null Null if error, false if no fields to restore, (int) post ID if success.

Source

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; } 

Hooks

do_action( ‘wp_restore_post_revision’, int $post_id, int $revision_id )

Fires after a post revision has been restored.

Changelog

VersionDescription
2.6.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.