Block Editor: Move caching to endpoint for unique responses.

Now that the pattern API request includes the locale and version, the cache key needs to contain a hash of the query args.

Props ocean90, dd32, timothyblynjacobs
Fixes #53435


git-svn-id: https://develop.svn.wordpress.org/trunk@51208 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Ian Dunn
2021-06-22 21:23:19 +00:00
parent 41c6786952
commit 83c7cad248
3 changed files with 116 additions and 41 deletions
+12 -12
View File
@@ -45,7 +45,11 @@ function _register_core_block_patterns_and_categories() {
}
/**
* Import patterns from wordpress.org/patterns.
* Register Core's official patterns from wordpress.org/patterns.
*
* @since 5.8.0
*
* @param WP_Screen $current_screen The screen that the current request was triggered from.
*/
function _load_remote_block_patterns( $current_screen ) {
if ( ! $current_screen->is_block_editor ) {
@@ -64,18 +68,14 @@ function _load_remote_block_patterns( $current_screen ) {
$should_load_remote = apply_filters( 'should_load_remote_block_patterns', true );
if ( $supports_core_patterns && $should_load_remote ) {
$patterns = get_transient( 'wp_remote_block_patterns' );
if ( ! $patterns ) {
$request = new WP_REST_Request( 'GET', '/wp/v2/pattern-directory/patterns' );
$core_keyword_id = 11; // 11 is the ID for "core".
$request->set_param( 'keyword', $core_keyword_id );
$response = rest_do_request( $request );
if ( $response->is_error() ) {
return;
}
$patterns = $response->get_data();
set_transient( 'wp_remote_block_patterns', $patterns, HOUR_IN_SECONDS );
$request = new WP_REST_Request( 'GET', '/wp/v2/pattern-directory/patterns' );
$core_keyword_id = 11; // 11 is the ID for "core".
$request->set_param( 'keyword', $core_keyword_id );
$response = rest_do_request( $request );
if ( $response->is_error() ) {
return;
}
$patterns = $response->get_data();
foreach ( $patterns as $settings ) {
$pattern_name = 'core/' . sanitize_title( $settings['title'] );