WordPress 中的 Hotwire Turbo

Hotwire Turbo in WordPress

提问人:rctneil 提问时间:8/9/2023 最后编辑:rctneil 更新时间:9/12/2023 访问量:90

问:

我希望在我的 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 );

javascript wordpress turbolinks hotwire-rails

评论

0赞 benjah 8/9/2023
你是在叫里面的钩子吗?wp_enqueue_scriptwp_enqueue_scripts
0赞 rctneil 8/9/2023
wp_enqueue_script在我调用的函数中作为 的回调。我会更新我的 OPwp_enqueue_scripts

答:

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');