_wp_post_revision_fields() – Determines which fields of posts are to be saved in revisions.

You appear to be a bot. Output may be restricted

Description

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

Usage

$array = _wp_post_revision_fields( $post, $deprecated );

Parameters

$post
( array|WP_Post ) optional – Optional. A post array or a WP_Post object being processed for insertion as a post revision. Default empty array.
$deprecated
( bool ) optional – Not used.

Returns

array Array of fields that can be versioned.

Source

File name: wordpress/wp-includes/revision.php
Lines:

1 to 41 of 41
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;
}
 

 View on GitHub View on Trac