WP_REST_Revisions_Controller::get_item_schema()publicWP 4.7.0

Retrieves the revision's schema, conforming to JSON Schema.

Method of the class: WP_REST_Revisions_Controller{}

No Hooks.

Return

Array. Item schema data.

Usage

$WP_REST_Revisions_Controller = new WP_REST_Revisions_Controller();
$WP_REST_Revisions_Controller->get_item_schema();

Changelog

Since 4.7.0 Introduced.

WP_REST_Revisions_Controller::get_item_schema() code WP 6.5.2

public function get_item_schema() {
	if ( $this->schema ) {
		return $this->add_additional_fields_schema( $this->schema );
	}

	$schema = array(
		'$schema'    => 'http://json-schema.org/draft-04/schema#',
		'title'      => "{$this->parent_post_type}-revision",
		'type'       => 'object',
		// Base properties for every Revision.
		'properties' => array(
			'author'       => array(
				'description' => __( 'The ID for the author of the revision.' ),
				'type'        => 'integer',
				'context'     => array( 'view', 'edit', 'embed' ),
			),
			'date'         => array(
				'description' => __( "The date the revision was published, in the site's timezone." ),
				'type'        => 'string',
				'format'      => 'date-time',
				'context'     => array( 'view', 'edit', 'embed' ),
			),
			'date_gmt'     => array(
				'description' => __( 'The date the revision was published, as GMT.' ),
				'type'        => 'string',
				'format'      => 'date-time',
				'context'     => array( 'view', 'edit' ),
			),
			'guid'         => array(
				'description' => __( 'GUID for the revision, as it exists in the database.' ),
				'type'        => 'string',
				'context'     => array( 'view', 'edit' ),
			),
			'id'           => array(
				'description' => __( 'Unique identifier for the revision.' ),
				'type'        => 'integer',
				'context'     => array( 'view', 'edit', 'embed' ),
			),
			'modified'     => array(
				'description' => __( "The date the revision was last modified, in the site's timezone." ),
				'type'        => 'string',
				'format'      => 'date-time',
				'context'     => array( 'view', 'edit' ),
			),
			'modified_gmt' => array(
				'description' => __( 'The date the revision was last modified, as GMT.' ),
				'type'        => 'string',
				'format'      => 'date-time',
				'context'     => array( 'view', 'edit' ),
			),
			'parent'       => array(
				'description' => __( 'The ID for the parent of the revision.' ),
				'type'        => 'integer',
				'context'     => array( 'view', 'edit', 'embed' ),
			),
			'slug'         => array(
				'description' => __( 'An alphanumeric identifier for the revision unique to its type.' ),
				'type'        => 'string',
				'context'     => array( 'view', 'edit', 'embed' ),
			),
		),
	);

	$parent_schema = $this->parent_controller->get_item_schema();

	if ( ! empty( $parent_schema['properties']['title'] ) ) {
		$schema['properties']['title'] = $parent_schema['properties']['title'];
	}

	if ( ! empty( $parent_schema['properties']['content'] ) ) {
		$schema['properties']['content'] = $parent_schema['properties']['content'];
	}

	if ( ! empty( $parent_schema['properties']['excerpt'] ) ) {
		$schema['properties']['excerpt'] = $parent_schema['properties']['excerpt'];
	}

	if ( ! empty( $parent_schema['properties']['guid'] ) ) {
		$schema['properties']['guid'] = $parent_schema['properties']['guid'];
	}

	$schema['properties']['meta'] = $this->meta->get_field_schema();

	$this->schema = $schema;

	return $this->add_additional_fields_schema( $this->schema );
}