提问人:rctneil 提问时间:8/9/2023 最后编辑:rctneil 更新时间:9/12/2023 访问量:90
WordPress 中的 Hotwire Turbo
Hotwire Turbo in WordPress
问:
我希望在我的 WP 应用程序中使用 Hotwire Turbo。
我是这样包括的:
wp_enqueue_script('Turbo', 'https://unpkg.com/@hotwired/t[email protected]/dist/turbo.es2017-esm.js', array(), '7.3.0', false);
上面的一行位于下面调用的函数中:
add_action( 'wp_enqueue_scripts', 'enqueue_scripts' );
并确保将其视为具有以下功能的模块:
function set_scripts_type_attribute( $tag, $handle, $src ) {
if ( 'Turbo' === $handle ) {
$tag = '<script type="module" src="'. $src .'"></script>';
}
return $tag;
}
但是我收到此错误:
application.js:29 未捕获的引用错误:未定义 Turbo 在应用程序.js:29:1
有人知道如何解决这个问题吗?
谢谢
add_filter( 'script_loader_tag', 'set_scripts_type_attribute', 10, 3 );
答:
0赞
borisano
9/12/2023
#1
似乎您没有为脚本设置任何依赖项。这意味着脚本将无法找到所需的其他 JavaScript 文件。
若要修复此错误,需要将以下依赖项添加到调用中:wp_enqueue_script()
wp_enqueue_script('Turbo', 'https://unpkg.com/@hotwired/[email protected]/dist/turbo.es2017-esm.js', array('jquery'), '7.3.0', false)
;
Turbo 脚本需要 jquery 依赖项。添加此依赖项后,错误应该会消失。
以下是在 WordPress 中加载 Turbo 脚本所需的完整代码:
function enqueue_scripts() {
wp_enqueue_script('Turbo', 'https://unpkg.com/@hotwired/[email protected]/dist/turbo.es2017-esm.js', array('jquery'), '7.3.0', false);
}
add_action('wp_enqueue_scripts', 'enqueue_scripts');
评论
wp_enqueue_script
wp_enqueue_scripts
wp_enqueue_script
在我调用的函数中作为 的回调。我会更新我的 OPwp_enqueue_scripts