WP_REST_Terms_Controller::get_item_schema(): array

In this article

Retrieves the term’s schema, conforming to JSON Schema.

Return

array Item schema data.

Source

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'      => 'post_tag' === $this->taxonomy ? 'tag' : $this->taxonomy,
		'type'       => 'object',
		'properties' => array(
			'id'          => array(
				'description' => __( 'Unique identifier for the term.' ),
				'type'        => 'integer',
				'context'     => array( 'view', 'embed', 'edit' ),
				'readonly'    => true,
			),
			'count'       => array(
				'description' => __( 'Number of published posts for the term.' ),
				'type'        => 'integer',
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
			'description' => array(
				'description' => __( 'HTML description of the term.' ),
				'type'        => 'string',
				'context'     => array( 'view', 'edit' ),
			),
			'link'        => array(
				'description' => __( 'URL of the term.' ),
				'type'        => 'string',
				'format'      => 'uri',
				'context'     => array( 'view', 'embed', 'edit' ),
				'readonly'    => true,
			),
			'name'        => array(
				'description' => __( 'HTML title for the term.' ),
				'type'        => 'string',
				'context'     => array( 'view', 'embed', 'edit' ),
				'arg_options' => array(
					'sanitize_callback' => 'sanitize_text_field',
				),
				'required'    => true,
			),
			'slug'        => array(
				'description' => __( 'An alphanumeric identifier for the term unique to its type.' ),
				'type'        => 'string',
				'context'     => array( 'view', 'embed', 'edit' ),
				'arg_options' => array(
					'sanitize_callback' => array( $this, 'sanitize_slug' ),
				),
			),
			'taxonomy'    => array(
				'description' => __( 'Type attribution for the term.' ),
				'type'        => 'string',
				'enum'        => array( $this->taxonomy ),
				'context'     => array( 'view', 'embed', 'edit' ),
				'readonly'    => true,
			),
		),
	);

	$taxonomy = get_taxonomy( $this->taxonomy );

	if ( $taxonomy->hierarchical ) {
		$schema['properties']['parent'] = array(
			'description' => __( 'The parent term ID.' ),
			'type'        => 'integer',
			'context'     => array( 'view', 'edit' ),
		);
	}

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

	$this->schema = $schema;

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

Changelog

VersionDescription
4.7.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.