wpseek.com
Eine auf WordPress spezialiserte Suchmaschine für Entwickler und Theme-Autoren
_wp_add_entity_modules_to_editor_script is private and should not be used in themes or plugins directly.
_wp_add_entity_modules_to_editor_script › WordPress Function
Seit7.2.0
Veraltetn/v
› _wp_add_entity_modules_to_editor_script ( $scripts, $get_modules )
| Zugriff: |
|
| Parameter: (2) |
|
| Definiert in: |
|
| Codex: |
Declares the script modules of an entity API as dependencies of the editor script.
The editor imports the script modules of an entity on demand, with a dynamicimport() the browser resolves through the import map of the page. Listing
the modules as dynamic module_dependencies of the wp-editor script adds
them to the import map of every page that loads the editor script: the post
editor, the site editor, and the pages booted by @wordpress/boot, whose
prerequisites depend on it. A dynamic dependency is only listed in the
import map; the module is fetched when it is imported.
The modules are read with $get_modules, which reads the registry of the
API and so fires its init action, registering the entities and their script
modules on demand. It is only called on the pages that load the editor
script, not on every admin request (heartbeat, Ajax, other screens). The
callers run on admin_footer, the last action before the import map is
printed that fires both in the admin template and in the pages rendered
outside it, which print the import map themselves. By then init has
completed, so the post types and supports the registrations derive from are
final. The registries only accept registrations while their action fires,
so the modules declared here are those of everything the page can show.Quellcode
function _wp_add_entity_modules_to_editor_script( $scripts, $get_modules ) {
if ( ! $scripts instanceof WP_Scripts ) {
$scripts = wp_scripts();
}
if ( ! $scripts->query( 'wp-editor', 'enqueued' ) && ! $scripts->query( 'wp-editor', 'done' ) ) {
return;
}
$kinds = call_user_func( $get_modules );
if ( empty( $kinds ) ) {
return;
}
$dependencies = $scripts->get_data( 'wp-editor', 'module_dependencies' );
$dependencies = is_array( $dependencies ) ? $dependencies : array();
$declared = array();
foreach ( $dependencies as $dependency ) {
$declared[] = is_array( $dependency ) ? $dependency['id'] : $dependency;
}
$added = false;
foreach ( $kinds as $entities ) {
foreach ( $entities as $modules ) {
foreach ( $modules as $module ) {
if ( ! in_array( $module, $declared, true ) ) {
$dependencies[] = array(
'id' => $module,
'import' => 'dynamic',
);
$declared[] = $module;
$added = true;
}
}
}
}
if ( $added ) {
// `add_data()` replaces the value, hence the merge above.
$scripts->add_data( 'wp-editor', 'module_dependencies', $dependencies );
}
}