通常,当我要加载javascript文件时,我会从函数中加载它们。使用以下代码的php文件:
wp_deregister_script(\'site-js\');
wp_register_script(\'site-js\', get_stylesheet_directory_uri().\'/js/site.js\', array(\'jquery\'), \'0.0.3\', true);
wp_enqueue_script(\'site-js\');
前几天,我下载了axios,并试图将其加载到我的wordpress主题中。在另一个javascript文件中,我尝试像这样导入axios:
import axio from \'axios\'
我一直收到以下错误消息:未捕获语法错误:无法在模块外使用import语句
我在谷歌上搜索了一下,并将这段代码放在了我的函数文件中:
add_filter(\'script_loader_tag\',\'add_type_to_script\', 10, 3);
function add_type_to_script($tag, $handle, $source){
if (\'ajaxloadmore\' === $handle) {
$tag = \'<script type="text/javascript" src="\'. $source .\'" type="module"></script>\';
}
return $tag;
}
从我看到的情况来看,这确实将type=“module”添加到了我的脚本标记中。我可以在查看页面源代码时看到它。但我注意到的一件事是,在检查元素时,我没有在脚本标记上看到type=“module”。这似乎也无法修复错误消息。
我的朋友建议我试试这个,而不是从“axios”导入axios;
const axios = window.axios;
现在,我所做的都在我的页面上了。php我在get\\u footer()函数的正上方添加了脚本标记。现在看起来是这样的:
<?php
$axsrc = get_stylesheet_directory_uri().\'/js/axios/axios.min.js\';
$src = get_stylesheet_directory_uri().\'/js/ajaxloadmore.js\';
?>
<script src="<?php echo esc_url($axsrc); ?>"></script>
<script type="module" src="<?php echo esc_url($src); ?>"></script>
我不喜欢这个解决方案,因为我喜欢从函数文件中注册和加载脚本,以便能够从一个地方管理它们。
有没有人对我有什么建议可以让这一切顺利进行?我需要将type=“module”添加到脚本标记中,并希望在我的函数中注册这些脚本。php。我该怎么做?
最合适的回答,由SO网友:Robbiegod 整理而成
下面是我现在用来添加type=”的最后一段代码;“模块”;到我的脚本。
wp_register_script(\'my-script\', get_theme_file_uri(\'/js/script.js\'), [\'axios\'], \'1.0\');
wp_enqueue_script(\'my-script\');
add_filter("script_loader_tag", "add_module_to_my_script", 10, 3);
function add_module_to_my_script($tag, $handle, $src)
{
if ("my-script" === $handle) {
$tag = \'<script type="module" src="\' . esc_url($src) . \'"></script>\';
}
return $tag;
}