WP_REST_Post_Statuses_Controller::check_read_permission()protectedWP 4.7.0

Checks whether a given post status should be visible.

Method of the class: WP_REST_Post_Statuses_Controller{}

No Hooks.

Return

true|false. True if the post status is visible, otherwise false.

Usage

// protected - for code of main (parent) or child class
$result = $this->check_read_permission( $status );
$status(object) (required)
Post status.

Changelog

Since 4.7.0 Introduced.

WP_REST_Post_Statuses_Controller::check_read_permission() code WP 6.4.3

protected function check_read_permission( $status ) {
	if ( true === $status->public ) {
		return true;
	}

	if ( false === $status->internal || 'trash' === $status->name ) {
		$types = get_post_types( array( 'show_in_rest' => true ), 'objects' );

		foreach ( $types as $type ) {
			if ( current_user_can( $type->cap->edit_posts ) ) {
				return true;
			}
		}
	}

	return false;
}