wp_save_post_revision

Definition:
function wp_save_post_revision( $post_id ) {}

Saves an already existing post as a post revision.
Typically used immediately prior to post updates.

Parameters

  • int $post_id: The ID of the post to save as a revision.

Return values

returns:Null or 0 if error, new revision ID, if success.

Source code

function wp_save_post_revision( $post_id ) {

	// We do autosaves manually with wp_create_post_autosave()

	if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )

		return;



	// WP_POST_REVISIONS = 0, false

	if ( ! WP_POST_REVISIONS )

		return;



	if ( !$post = get_post( $post_id, ARRAY_A ) )

		return;



	if ( !post_type_supports($post['post_type'], 'revisions') )

		return;



	$return = _wp_put_post_revision( $post );



	// WP_POST_REVISIONS = true (default), -1

	if ( !is_numeric( WP_POST_REVISIONS ) || WP_POST_REVISIONS < 0 )

		return $return;



	// all revisions and (possibly) one autosave

	$revisions = wp_get_post_revisions( $post_id, array( 'order' => 'ASC' ) );



	// WP_POST_REVISIONS = (int) (# of autosaves to save)

	$delete = count($revisions) - WP_POST_REVISIONS;



	if ( $delete < 1 )

		return $return;



	$revisions = array_slice( $revisions, 0, $delete );



	for ( $i = 0; isset($revisions[$i]); $i++ ) {

		if ( false !== strpos( $revisions[$i]->post_name, 'autosave' ) )

			continue;

		wp_delete_post_revision( $revisions[$i]->ID );

	}



	return $return;

}

4083

No comments yet... Be the first to leave a reply!

Leave a comment