Alert: 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.

_wp_post_revision_fields() WordPress Function

This function allows you to add custom fields to the post revision form. This can be useful if you want to track additional information about revisions, such as who made the change or why the change was made.

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

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


Parameters

$post

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

Default value: array()

$deprecated

(bool)(Optional)Not used.

Default value: false


Top ↑

Return

(array) Array of fields that can be versioned.


Top ↑

Source

File: wp-includes/revision.php

function _wp_post_revision_fields( $post = array(), $deprecated = false ) {
	static $fields = null;

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


Top ↑

Changelog

Changelog
VersionDescription
4.5.0The optional $autosave parameter was deprecated and renamed to $deprecated.
2.6.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.