WP_REST_Template_Autosaves_Controller::register_routes()

In this article

Registers the routes for autosaves.

Description

See also

Source

public function register_routes() {
	register_rest_route(
		$this->namespace,
		sprintf(
			'/%s/(?P<id>%s%s)/%s',
			$this->parent_base,
			/*
			 * Matches theme's directory: `/themes/<subdirectory>/<theme>/` or `/themes/<theme>/`.
			 * Excludes invalid directory name characters: `/:<>*?"|`.
			 */
			'([^\/:<>\*\?"\|]+(?:\/[^\/:<>\*\?"\|]+)?)',
			// Matches the template name.
			'[\/\w%-]+',
			$this->rest_base
		),
		array(
			'args'   => array(
				'id' => array(
					'description'       => __( 'The id of a template' ),
					'type'              => 'string',
					'sanitize_callback' => array( $this->parent_controller, '_sanitize_template_id' ),
				),
			),
			array(
				'methods'             => WP_REST_Server::READABLE,
				'callback'            => array( $this, 'get_items' ),
				'permission_callback' => array( $this, 'get_items_permissions_check' ),
				'args'                => $this->get_collection_params(),
			),
			array(
				'methods'             => WP_REST_Server::CREATABLE,
				'callback'            => array( $this, 'create_item' ),
				'permission_callback' => array( $this, 'create_item_permissions_check' ),
				'args'                => $this->parent_controller->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
			),
			'schema' => array( $this, 'get_public_item_schema' ),
		)
	);

	register_rest_route(
		$this->namespace,
		sprintf(
			'/%s/(?P<parent>%s%s)/%s/%s',
			$this->parent_base,
			/*
			 * Matches theme's directory: `/themes/<subdirectory>/<theme>/` or `/themes/<theme>/`.
			 * Excludes invalid directory name characters: `/:<>*?"|`.
			 */
			'([^\/:<>\*\?"\|]+(?:\/[^\/:<>\*\?"\|]+)?)',
			// Matches the template name.
			'[\/\w%-]+',
			$this->rest_base,
			'(?P<id>[\d]+)'
		),
		array(
			'args'   => array(
				'parent' => array(
					'description'       => __( 'The id of a template' ),
					'type'              => 'string',
					'sanitize_callback' => array( $this->parent_controller, '_sanitize_template_id' ),
				),
				'id'     => array(
					'description' => __( 'The ID for the autosave.' ),
					'type'        => 'integer',
				),
			),
			array(
				'methods'             => WP_REST_Server::READABLE,
				'callback'            => array( $this, 'get_item' ),
				'permission_callback' => array( $this->revisions_controller, 'get_item_permissions_check' ),
				'args'                => array(
					'context' => $this->get_context_param( array( 'default' => 'view' ) ),
				),
			),
			'schema' => array( $this, 'get_public_item_schema' ),
		)
	);
}

Changelog

VersionDescription
6.4.0Introduced.

User Contributed Notes

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