mirror of
https://github.com/WordPress/WordPress.git
synced 2024-08-27 16:19:38 +02:00
When using the text widget, a `wp.editor.initialize is not a function` notice is encountered. This happens when `wp-editor` is loaded as a dependency, which assigns `wp.oldEditor = wp.editor` and then redefines `wp.editor`. `wp-editor` is only used for the Classic block, which is not supported in the new widgets editor. [51198-51199] updated `@wordpress/block-library` to remove `wp-editor` as a dependency, but it’s still listed as a dependency of the `wp-block-directory` script handle. Since the Block directory is not supported within the widgets editor, the related assets can safely be blocked from enqueueing. Props noisysocks, gziolo, Mamaduka, mkaz. Fixes #53437. See #53397. Built from https://develop.svn.wordpress.org/trunk@51202 git-svn-id: http://core.svn.wordpress.org/trunk@50811 1a063a9b-81f0-0310-95a4-ce76da25c4cd
82 lines
2.3 KiB
PHP
82 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* The block-based widgets editor, for use in widgets.php.
|
|
*
|
|
* @package WordPress
|
|
* @subpackage Administration
|
|
*/
|
|
|
|
// Don't load directly.
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
die( '-1' );
|
|
}
|
|
|
|
// Flag that we're loading the block editor.
|
|
$current_screen = get_current_screen();
|
|
$current_screen->is_block_editor( true );
|
|
|
|
$block_editor_context = new WP_Block_Editor_Context();
|
|
|
|
$preload_paths = array(
|
|
array( '/wp/v2/media', 'OPTIONS' ),
|
|
'/wp/v2/sidebars?context=edit&per_page=-1',
|
|
'/wp/v2/widgets?context=edit&per_page=-1&_embed=about',
|
|
);
|
|
block_editor_rest_api_preload( $preload_paths, $block_editor_context );
|
|
|
|
$editor_settings = get_block_editor_settings(
|
|
array_merge( get_legacy_widget_block_editor_settings(), array( 'styles' => get_block_editor_theme_styles() ) ),
|
|
$block_editor_context
|
|
);
|
|
|
|
// The widgets editor does not support the Block Directory, so don't load any of
|
|
// its assets. This also prevents 'wp-editor' from being enqueued which we
|
|
// cannot load in the widgets screen because many widget scripts rely on `wp.editor`.
|
|
remove_action( 'enqueue_block_editor_assets', 'wp_enqueue_editor_block_directory_assets' );
|
|
|
|
wp_add_inline_script(
|
|
'wp-edit-widgets',
|
|
sprintf(
|
|
'wp.domReady( function() {
|
|
wp.editWidgets.initialize( "widgets-editor", %s );
|
|
} );',
|
|
wp_json_encode( $editor_settings )
|
|
)
|
|
);
|
|
|
|
// Preload server-registered block schemas.
|
|
wp_add_inline_script(
|
|
'wp-blocks',
|
|
'wp.blocks.unstable__bootstrapServerSideBlockDefinitions(' . wp_json_encode( get_block_editor_server_block_settings() ) . ');'
|
|
);
|
|
|
|
wp_add_inline_script(
|
|
'wp-blocks',
|
|
sprintf( 'wp.blocks.setCategories( %s );', wp_json_encode( get_block_categories( 'widgets-editor' ) ) ),
|
|
'after'
|
|
);
|
|
|
|
wp_enqueue_script( 'wp-edit-widgets' );
|
|
wp_enqueue_script( 'admin-widgets' );
|
|
wp_enqueue_style( 'wp-edit-widgets' );
|
|
|
|
/** This action is documented in wp-admin/edit-form-blocks.php */
|
|
do_action( 'enqueue_block_editor_assets' );
|
|
|
|
/** This action is documented in wp-admin/widgets-form.php */
|
|
do_action( 'sidebar_admin_setup' );
|
|
|
|
require_once ABSPATH . 'wp-admin/admin-header.php';
|
|
|
|
/** This action is documented in wp-admin/widgets-form.php */
|
|
do_action( 'widgets_admin_page' );
|
|
?>
|
|
|
|
<div id="widgets-editor" class="blocks-widgets-container"></div>
|
|
|
|
<?php
|
|
/** This action is documented in wp-admin/widgets-form.php */
|
|
do_action( 'sidebar_admin_page' );
|
|
|
|
require_once ABSPATH . 'wp-admin/admin-footer.php';
|