WP_REST_Plugins_Controller::register_routes()

In this article

Registers the routes for the plugins controller.

Source

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'                => array(
					'slug'   => array(
						'type'        => 'string',
						'required'    => true,
						'description' => __( 'WordPress.org plugin directory slug.' ),
						'pattern'     => '[\w\-]+',
					),
					'status' => array(
						'description' => __( 'The plugin activation status.' ),
						'type'        => 'string',
						'enum'        => is_multisite() ? array( 'inactive', 'active', 'network-active' ) : array( 'inactive', 'active' ),
						'default'     => 'inactive',
					),
				),
			),
			'schema' => array( $this, 'get_public_item_schema' ),
		)
	);

	register_rest_route(
		$this->namespace,
		'/' . $this->rest_base . '/(?P<plugin>' . self::PATTERN . ')',
		array(
			array(
				'methods'             => WP_REST_Server::READABLE,
				'callback'            => array( $this, 'get_item' ),
				'permission_callback' => array( $this, 'get_item_permissions_check' ),
			),
			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(
				'context' => $this->get_context_param( array( 'default' => 'view' ) ),
				'plugin'  => array(
					'type'              => 'string',
					'pattern'           => self::PATTERN,
					'validate_callback' => array( $this, 'validate_plugin_param' ),
					'sanitize_callback' => array( $this, 'sanitize_plugin_param' ),
				),
			),
			'schema' => array( $this, 'get_public_item_schema' ),
		)
	);
}

Changelog

VersionDescription
5.5.0Introduced.

User Contributed Notes

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