Editor: Add should_load_block_editor_scripts_and_styles
Adds a new should_load_block_editor_scripts_and_styles filter which can be used by plugins including Gutenberg to more precisely customise when block editor scripts and styles should be loaded by script-loader.php. Previously, plugins had to fiddle with $current_screen->is_block_editor(). Props zieladam. See #51330. git-svn-id: https://develop.svn.wordpress.org/trunk@49080 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
550bcd4f31
commit
443ed5bf18
@ -2160,9 +2160,7 @@ function script_concat_settings() {
|
|||||||
* @global WP_Screen $current_screen WordPress current screen object.
|
* @global WP_Screen $current_screen WordPress current screen object.
|
||||||
*/
|
*/
|
||||||
function wp_common_block_scripts_and_styles() {
|
function wp_common_block_scripts_and_styles() {
|
||||||
global $current_screen;
|
if ( is_admin() && ! _should_load_block_editor_scripts_and_styles() ) {
|
||||||
|
|
||||||
if ( is_admin() && ( $current_screen instanceof WP_Screen ) && ! $current_screen->is_block_editor() ) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2185,6 +2183,30 @@ function wp_common_block_scripts_and_styles() {
|
|||||||
do_action( 'enqueue_block_assets' );
|
do_action( 'enqueue_block_assets' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the editor scripts and styles for all registered block types
|
||||||
|
* should be enqueued on the current screen.
|
||||||
|
*
|
||||||
|
* @access private
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
function _should_load_block_editor_scripts_and_styles() {
|
||||||
|
global $current_screen;
|
||||||
|
|
||||||
|
$is_block_editor_screen = ( $current_screen instanceof WP_Screen ) && $current_screen->is_block_editor();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filters the flag that decides whether or not block editor scripts and
|
||||||
|
* styles are going to be enqueued on the current screen.
|
||||||
|
*
|
||||||
|
* @since 5.6.0
|
||||||
|
*
|
||||||
|
* @param boolean $is_block_editor_screen Current value of the flag
|
||||||
|
*/
|
||||||
|
return apply_filters( 'should_load_block_editor_scripts_and_styles', $is_block_editor_screen );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enqueues registered block scripts and styles, depending on current rendered
|
* Enqueues registered block scripts and styles, depending on current rendered
|
||||||
* context (only enqueuing editor scripts while in context of the editor).
|
* context (only enqueuing editor scripts while in context of the editor).
|
||||||
@ -2196,7 +2218,7 @@ function wp_common_block_scripts_and_styles() {
|
|||||||
function wp_enqueue_registered_block_scripts_and_styles() {
|
function wp_enqueue_registered_block_scripts_and_styles() {
|
||||||
global $current_screen;
|
global $current_screen;
|
||||||
|
|
||||||
$is_editor = ( ( $current_screen instanceof WP_Screen ) && $current_screen->is_block_editor() );
|
$load_editor_scripts = _should_load_block_editor_scripts_and_styles();
|
||||||
|
|
||||||
$block_registry = WP_Block_Type_Registry::get_instance();
|
$block_registry = WP_Block_Type_Registry::get_instance();
|
||||||
foreach ( $block_registry->get_all_registered() as $block_name => $block_type ) {
|
foreach ( $block_registry->get_all_registered() as $block_name => $block_type ) {
|
||||||
@ -2211,12 +2233,12 @@ function wp_enqueue_registered_block_scripts_and_styles() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Editor styles.
|
// Editor styles.
|
||||||
if ( $is_editor && ! empty( $block_type->editor_style ) ) {
|
if ( $load_editor_scripts && ! empty( $block_type->editor_style ) ) {
|
||||||
wp_enqueue_style( $block_type->editor_style );
|
wp_enqueue_style( $block_type->editor_style );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Editor script.
|
// Editor script.
|
||||||
if ( $is_editor && ! empty( $block_type->editor_script ) ) {
|
if ( $load_editor_scripts && ! empty( $block_type->editor_script ) ) {
|
||||||
wp_enqueue_script( $block_type->editor_script );
|
wp_enqueue_script( $block_type->editor_script );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user