From 14a30703e550e8477a07d59879e55905dff3bd7c Mon Sep 17 00:00:00 2001 From: Isabel Brison Date: Tue, 27 Jun 2023 06:36:02 +0000 Subject: [PATCH] Editor: navigation post preloading. Adds a hook for preloading navigation posts in site editor. Props get_dave, spacedmonkey, audrasjb, ramonopoly. Fixes #58556. git-svn-id: https://develop.svn.wordpress.org/trunk@56054 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/site-editor.php | 38 +++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/wp-admin/site-editor.php b/src/wp-admin/site-editor.php index f56e1f1fd2..c66c91f099 100644 --- a/src/wp-admin/site-editor.php +++ b/src/wp-admin/site-editor.php @@ -76,7 +76,12 @@ if ( isset( $_GET['postType'] ) && ! isset( $_GET['postId'] ) ) { $active_global_styles_id = WP_Theme_JSON_Resolver::get_user_global_styles_post_id(); $active_theme = get_stylesheet(); -$preload_paths = array( + +$navigation_rest_route = rest_get_route_for_post_type_items( + 'wp_navigation' +); + +$preload_paths = array( array( '/wp/v2/media', 'OPTIONS' ), '/wp/v2/types?context=view', '/wp/v2/types/wp_template?context=edit', @@ -87,6 +92,37 @@ $preload_paths = array( '/wp/v2/global-styles/' . $active_global_styles_id . '?context=edit', '/wp/v2/global-styles/' . $active_global_styles_id, '/wp/v2/global-styles/themes/' . $active_theme, + array( $navigation_rest_route, 'OPTIONS' ), + array( + add_query_arg( + array( + 'context' => 'edit', + 'per_page' => 100, + 'order' => 'desc', + 'orderby' => 'date', + '_locale' => 'user', + // array indices are required to avoid query being encoded and not matching in cache. + 'status[0]' => 'publish', + 'status[1]' => 'draft', + ), + $navigation_rest_route + ), + 'GET', + ), + $preload_paths[] = array( + add_query_arg( + array( + 'context' => 'edit', + 'per_page' => 100, + 'order' => 'desc', + 'orderby' => 'date', + 'status[0]' => 'publish', + 'status[1]' => 'draft', + ), + $navigation_rest_route + ), + 'GET', + ), ); block_editor_rest_api_preload( $preload_paths, $block_editor_context );