diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
index e53ff4b910..614340f089 100644
--- a/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
+++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
@@ -2035,11 +2035,17 @@ class WP_REST_Posts_Controller extends WP_REST_Controller {
 			),
 		);
 		foreach ( $post_type_attributes as $attribute ) {
-			if ( isset( $fixed_schemas[ $this->post_type ] ) && ! in_array( $attribute, $fixed_schemas[ $this->post_type ], true ) ) {
-				continue;
-			} elseif ( ! isset( $fixed_schemas[ $this->post_type ] ) && ! post_type_supports( $this->post_type, $attribute ) ) {
-				continue;
-			}
+			if (
+				( ! isset( $fixed_schemas[ $this->post_type ] ) ) ||
+				(
+					isset( $fixed_schemas[ $this->post_type ] ) &&
+					! in_array( $attribute, $fixed_schemas[ $this->post_type ], true )
+				)
+			) {
+				if ( ! post_type_supports( $this->post_type, $attribute ) ) {
+					continue;
+				}
+ 			}
 
 			switch ( $attribute ) {
 
diff --git a/tests/phpunit/tests/rest-api/rest-posts-controller.php b/tests/phpunit/tests/rest-api/rest-posts-controller.php
index ba174c448e..e0b11ecec0 100644
--- a/tests/phpunit/tests/rest-api/rest-posts-controller.php
+++ b/tests/phpunit/tests/rest-api/rest-posts-controller.php
@@ -3591,6 +3591,16 @@ class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te
 		$this->assertArrayHasKey( 'categories', $properties );
 	}
 
+	public function test_add_post_type_supports_adds_entries_to_schema() {
+		add_post_type_support('post', 'page-attributes');
+		create_initial_rest_routes();
+		$request    = new WP_REST_Request( 'OPTIONS', '/wp/v2/posts' );
+		$response   = rest_get_server()->dispatch( $request );
+		$data       = $response->get_data();
+		$properties = $data['schema']['properties'];
+		$this->assertArrayHasKey( 'menu_order', $properties );
+	}
+
 	/**
 	 * @ticket 39805
 	 */
