Private Access Private Access

This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.

Summery Summery

Determines which fields of posts are to be saved in revisions.

Syntax Syntax

_wp_post_revision_fields( array|WP_Post $post = array(), bool $deprecated = false )

Parameters Parameters


(Optional) A post array or a WP_Post object being processed for insertion as a post revision.

Default value: array()


(Optional) Not used.

Default value: false

Return Return

(array) Array of fields that can be versioned.

Source Source

File: wp-includes/revision.php

	if ( ! is_array( $post ) ) {
		$post = get_post( $post, ARRAY_A );

	if ( is_null( $fields ) ) {
		// Allow these to be versioned.
		$fields = array(
			'post_title'   => __( 'Title' ),
			'post_content' => __( 'Content' ),
			'post_excerpt' => __( 'Excerpt' ),

	 * Filters the list of fields saved in post revisions.
	 * Included by default: 'post_title', 'post_content' and 'post_excerpt'.
	 * Disallowed fields: 'ID', 'post_name', 'post_parent', 'post_date',
	 * 'post_date_gmt', 'post_status', 'post_type', 'comment_count',
	 * and 'post_author'.
	 * @since 2.6.0
	 * @since 4.5.0 The `$post` parameter was added.
	 * @param array $fields List of fields to revision. Contains 'post_title',
	 *                      'post_content', and 'post_excerpt' by default.
	 * @param array $post   A post array being processed for insertion as a post revision.
	$fields = apply_filters( '_wp_post_revision_fields', $fields, $post );

	// WP uses these internally either in versioning or elsewhere - they cannot be versioned.
	foreach ( array( 'ID', 'post_name', 'post_parent', 'post_date', 'post_date_gmt', 'post_status', 'post_type', 'comment_count', 'post_author' ) as $protect ) {
		unset( $fields[ $protect ] );

	return $fields;



Changelog Changelog

Version Description
4.5.0 The optional $autosave parameter was deprecated and renamed to $deprecated.
2.6.0 Introduced.


Leave a Reply