Make WordPress Core


Ignore:
Timestamp:
01/17/2022 10:48:05 PM (3 years ago)
Author:
hellofromTonya
Message:

Editor: Explicitly load remote block patterns in the block and site editor screens.

Remote block patterns from wp.org were to be loaded through a callback hooked into the current_screen filter. Within 2 callbacks, i.e. _load_remote_featured_patterns() and _load_remote_block_patterns(), a guard clause bailed out early if the $current_screen->is_block_editor is false.

However, the current_screen filter is unreliable to detect the block editor. Why? In the block and Site Editor screens, $current_scren->is_block_editor is not set until after the filter is executed. Whoopsie.

This commit no longer uses the current_screen filter. Instead, it explicitly loads the remote block patterns by invoking both private functions (now not callbacks) directly in the screen files for the block and site editor screens.

With this change, passing WP_Screen object into these functions is no longer needed. As the _load_remote_block_patterns() function was introduced in 5.8.0, its function parameter is now deprecated and the guard clause retained for backwards compatibility.

Follow-up to [51021], [52377].

Props poena, noisysocks, peterwilsoncc, hellofromTonya, audrasjb.
Merges [52593] to the 5.9 branch.
Fixes #54806.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/5.9/src/wp-includes/default-filters.php

    r52437 r52594  
    333333add_action( 'wp_print_footer_scripts', '_wp_footer_scripts' );
    334334add_action( 'init', '_register_core_block_patterns_and_categories' );
    335 add_action( 'current_screen', '_load_remote_block_patterns' );
    336 add_action( 'current_screen', '_load_remote_featured_patterns' );
    337335add_action( 'init', 'check_theme_switched', 99 );
    338336add_action( 'init', array( 'WP_Block_Supports', 'init' ), 22 );
Note: See TracChangeset for help on using the changeset viewer.