У меня есть плагин Wordpress, который отображается как метабокс на странице редактирования сообщения, который я пишу, который должен вызывать сценарии как пользовательских HTML элементов, так и модулей. Однако, когда я просматриваю исходный код, скрипты, которые должны отображаться как type="module"
, отображаются только как type="text/javascript"
. Мой код:
function meta_box_setup() {
add_action( 'add_meta_boxes', __NAMESPACE__ . '\add_meta_box' );
add_action( 'save_post', __NAMESPACE__ . '\save_meta_box_data', 10, 2 );
wp_register_script('Module1','/wp-content/plugins/my-plugin/js/model/module1.js');
wp_register_script('Module2','/wp-content/plugins/my-plugin/js/module2.js', array('Module1'));
wp_register_script('Module3','/wp-content/plugins/my-plugin/js/Controller/module3.js', array('Module1','Module2'));
add_action( 'admin_enqueue_scripts', function () {
wp_enqueue_script('Module1');
wp_enqueue_script('Module2');
wp_enqueue_script('Module3');
});
add_filter('script_loader_tag',
function ($tag, $handle, $src) {
if (( 'Module3' !== $handle ) || ('Module1' !== $handle) || ('Module2' !== $handle)) {
return $tag;
}
$tag = '<script type="module" src="' . $src . '"></script>';
return $tag;
}
, 10, 3);
add_action( 'admin_enqueue_scripts', function () {
error_log("inside the scripts callback");
wp_enqueue_script('Element1','/wp-content/plugins/my-plugin/js/element1.js');
wp_enqueue_script('Element2','/wp-content/plugins/my-plugin/js/element2.js');
wp_enqueue_script('Element3','/wp-content/plugins/my-plugin/js/element3.js');
wp_enqueue_script('Element4','/wp-content/plugins/my-plugin/js/element4.js');
});
}
Я пытался основывать свой код на на этом , но безрезультатно. Как я могу заставить модули отображаться как type = 'module'?