| @@ -117,23 +117,23 @@ | ||
| 117 | 117 | } |
| 118 | 118 | add_filter( 'rest_prepare_theme', 'gutenberg_rest_theme_global_styles_link_rel_7_0', 10, 2 ); |
| 119 | 119 | |
| 120 | 120 | /** |
| 121 | - * Overrides the default REST controller for revisions to support nested | |
| 122 | - * _fields parameters (e.g. content.raw without content.rendered). | |
| 121 | + * Overrides the default REST controller for autosaves to fix real-time | |
| 122 | + * collaboration on draft posts. | |
| 123 | 123 | * |
| 124 | - * The core WP_REST_Revisions_Controller uses in_array() checks for content, | |
| 125 | - * title, excerpt, and guid fields, which prevents sub-field filtering via | |
| 126 | - * the _fields parameter. The Gutenberg override uses rest_is_field_included() | |
| 127 | - * so that clients can avoid expensive server-side rendering when only raw | |
| 128 | - * data is needed. | |
| 124 | + * When RTC is enabled, draft autosaves from all users update the post directly | |
| 125 | + * instead of creating per-user autosave revisions depending on post lock and | |
| 126 | + * assigned author. | |
| 129 | 127 | * |
| 130 | - * Only overrides when revisions_rest_controller_class is not explicitly set. | |
| 128 | + * Only overrides when autosave_rest_controller_class is not explicitly set, | |
| 129 | + * i.e. when WP_REST_Autosaves_Controller would be used by default. Post types | |
| 130 | + * with their own specialized autosave controller (e.g. templates) are left alone. | |
| 131 | 131 | */ |
| 132 | -function gutenberg_override_revisions_rest_controller( $args ) { | |
| 133 | - if ( empty( $args['revisions_rest_controller_class'] ) ) { | |
| 134 | - $args['revisions_rest_controller_class'] = 'Gutenberg_REST_Revisions_Controller'; | |
| 132 | +function gutenberg_override_autosaves_rest_controller( $args ) { | |
| 133 | + if ( empty( $args['autosave_rest_controller_class'] ) ) { | |
| 134 | + $args['autosave_rest_controller_class'] = 'Gutenberg_REST_Autosaves_Controller'; | |
| 135 | 135 | } |
| 136 | 136 | return $args; |
| 137 | 137 | } |
| 138 | 138 | |
| 139 | -add_filter( 'register_post_type_args', 'gutenberg_override_revisions_rest_controller', 10, 1 ); | |
| 139 | +add_filter( 'register_post_type_args', 'gutenberg_override_autosaves_rest_controller', 10, 1 ); | |