WP_REST_Posts_Controller::register_routes()publicWP 4.7.0

Registers the routes for posts.

Method of the class: WP_REST_Posts_Controller{}

No Hooks.

Return

null. Nothing (null).

Usage

$WP_REST_Posts_Controller = new WP_REST_Posts_Controller();
$WP_REST_Posts_Controller->register_routes();

Notes

Changelog

Since 4.7.0 Introduced.

WP_REST_Posts_Controller::register_routes() code WP 6.4.3

public function register_routes() {

	register_rest_route(
		$this->namespace,
		'/' . $this->rest_base,
		array(
			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->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
			),
			'allow_batch' => $this->allow_batch,
			'schema'      => array( $this, 'get_public_item_schema' ),
		)
	);

	$schema        = $this->get_item_schema();
	$get_item_args = array(
		'context' => $this->get_context_param( array( 'default' => 'view' ) ),
	);
	if ( isset( $schema['properties']['password'] ) ) {
		$get_item_args['password'] = array(
			'description' => __( 'The password for the post if it is password protected.' ),
			'type'        => 'string',
		);
	}
	register_rest_route(
		$this->namespace,
		'/' . $this->rest_base . '/(?P<id>[\d]+)',
		array(
			'args'        => array(
				'id' => array(
					'description' => __( 'Unique identifier for the post.' ),
					'type'        => 'integer',
				),
			),
			array(
				'methods'             => WP_REST_Server::READABLE,
				'callback'            => array( $this, 'get_item' ),
				'permission_callback' => array( $this, 'get_item_permissions_check' ),
				'args'                => $get_item_args,
			),
			array(
				'methods'             => WP_REST_Server::EDITABLE,
				'callback'            => array( $this, 'update_item' ),
				'permission_callback' => array( $this, 'update_item_permissions_check' ),
				'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
			),
			array(
				'methods'             => WP_REST_Server::DELETABLE,
				'callback'            => array( $this, 'delete_item' ),
				'permission_callback' => array( $this, 'delete_item_permissions_check' ),
				'args'                => array(
					'force' => array(
						'type'        => 'boolean',
						'default'     => false,
						'description' => __( 'Whether to bypass Trash and force deletion.' ),
					),
				),
			),
			'allow_batch' => $this->allow_batch,
			'schema'      => array( $this, 'get_public_item_schema' ),
		)
	);
}