PluginProbe
Gutenberg / 24.1.0
Gutenberg v24.1.0
24.1.0 24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 All 404 releases
← All changes | lib/compat/wordpress-7.1/preload.php +20 -10 23.4.0 → 24.1.0 View file →
@@ -5,25 +5,21 @@
5 5 * @package gutenberg
6 6 */
7 7
8 8 /**
9 - * Filters the block editor preload paths to include media processing fields.
9 + * Filters the block editor preload paths.
10 10 *
11 - * The packages/core-data/src/entities.js file requests additional fields
12 - * (image_sizes, image_size_threshold) on the root endpoint that are not
13 - * included in WordPress Core's default preload paths. This filter ensures
14 - * the preloaded URL matches exactly what the JavaScript requests.
15 - *
16 11 * @since 20.1.0
17 12 *
18 - * @param array $paths REST API paths to preload.
13 + * @param array $paths REST API paths to preload.
14 + * @param WP_Block_Editor_Context $context Block editor context.
19 15 * @return array Filtered preload paths.
20 16 */
21 -function gutenberg_block_editor_preload_paths_root_fields( $paths ) {
17 +function gutenberg_block_editor_preload_paths_7_1( $paths, $context ) {
22 18 // Complete list of fields expected by packages/core-data/src/entities.js.
23 19 // This must match exactly for preloading to work (same fields, same order).
24 20 // @see packages/core-data/src/entities.js rootEntitiesConfig.__unstableBase
25 - $root_fields = 'description,gmt_offset,home,image_sizes,image_size_threshold,name,site_icon,site_icon_url,site_logo,timezone_string,url,page_for_posts,page_on_front,show_on_front';
21 + $root_fields = 'description,gmt_offset,home,image_max_bit_depth,image_sizes,image_size_threshold,image_strip_meta,name,site_icon,site_icon_url,site_logo,timezone_string,url,page_for_posts,page_on_front,show_on_front';
26 22
27 23 foreach ( $paths as $key => $path ) {
28 24 if ( is_string( $path ) && str_starts_with( $path, '/?_fields=' ) ) {
29 25 // Replace with the complete fields list to ensure exact match.
@@ -31,7 +27,21 @@
31 27 break;
32 28 }
33 29 }
34 30
31 + if ( 'core/edit-post' === $context->name && isset( $context->post ) ) {
32 + $paths[] = '/wp/v2/templates/lookup?slug=front-page';
33 + $paths[] = '/wp/v2/taxonomies?context=edit';
34 + $paths[] = array( rest_get_route_for_post_type_items( $context->post->post_type ), 'OPTIONS' );
35 +
36 + $author_id = (int) get_post_field( 'post_author', $context->post->ID );
37 + if ( post_type_supports( $context->post->post_type, 'author' ) && $author_id > 0 ) {
38 + $paths[] = sprintf(
39 + '/wp/v2/users/%d?context=view&_fields=id,name',
40 + $author_id
41 + );
42 + }
43 + }
44 +
35 45 return $paths;
36 46 }
37 -add_filter( 'block_editor_rest_api_preload_paths', 'gutenberg_block_editor_preload_paths_root_fields' );
47 +add_filter( 'block_editor_rest_api_preload_paths', 'gutenberg_block_editor_preload_paths_7_1', 10, 2 );