Как в wordpress добавить произвольный атрибут к подключаемому скрипту?
У меня в functions.php подключен скрипт:
wp_enqueue_script( 'script', get_template_directory_uri() . '/assets/script.js', array(), _S_VERSION, true );
Мне надо подключить к этому скрипту type = "module". Подскажите, как это сделать?
Ответ на ваш вопрос:
https://stackoverflow.com/questions/58931144/enqueue-javascript-with-type-module
Также не забывайте отмечать здесь вопрос, как решенным.
add_filter( 'script_loader_tag', 'add_type_attribute' , 10, 3 ); function add_type_attribute($tag, $handle, $src) { // if not your script, do nothing and return original $tag if ( 'your-script-handle' !== $handle ) { return $tag; } // change the script tag by adding type="module" and return it. $tag = '<script type="module" src="' . esc_url( $src ) . '"></script>'; return $tag; }Я бы тут лучше
Записал более универсально, т.к. в теге могут быть и другие атрибуты, в частности с недавнего времени ВП туда id стал добавлять.
Проверка работы кода:
Большое Спасибо за помощь!
Готовый код:
$script_id = 'script'; $tpl_url = get_template_directory_uri(); wp_enqueue_script( $script_id, "$tpl_url/assets/script.js", [], _S_VERSION, true ); $enqueue_script_add_type_attribute = static function( $tag, $handle ) use ( $script_id ) { // if not your script, do nothing and return original $tag if ( $script_id !== $handle ) { return $tag; } // remove the current type if there is one $tag = preg_replace( '/ type=([\'"])[^\'"]+\1/', '', $tag ); // add type $tag = str_replace( 'src=', 'type="module" src=', $tag ); return $tag; }