WP_REST_Post_Types_Controller::get_item( WP_REST_Request $request ): WP_REST_Response|WP_Error

In this article

Retrieves a specific post type.

Parameters

$requestWP_REST_Requestrequired
Full details about the request.

Return

WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.

Source

public function get_item( $request ) {
	$obj = get_post_type_object( $request['type'] );

	if ( empty( $obj ) ) {
		return new WP_Error(
			'rest_type_invalid',
			__( 'Invalid post type.' ),
			array( 'status' => 404 )
		);
	}

	if ( empty( $obj->show_in_rest ) ) {
		return new WP_Error(
			'rest_cannot_read_type',
			__( 'Cannot view post type.' ),
			array( 'status' => rest_authorization_required_code() )
		);
	}

	if ( 'edit' === $request['context'] && ! current_user_can( $obj->cap->edit_posts ) ) {
		return new WP_Error(
			'rest_forbidden_context',
			__( 'Sorry, you are not allowed to edit posts in this post type.' ),
			array( 'status' => rest_authorization_required_code() )
		);
	}

	$data = $this->prepare_item_for_response( $obj, $request );

	return rest_ensure_response( $data );
}

Changelog

VersionDescription
4.7.0Introduced.

User Contributed Notes

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