WordPress 中的 Hotwire Turbo

问题描述 投票:0回答:1

我希望在我的 WP 应用程序中使用 Hotwire Turbo。

我像这样包括它:

wp_enqueue_script('Turbo', 'https://unpkg.com/@hotwired/[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 Uncaught ReferenceError: Turbo 未定义 在 application.js:29:1

有人知道如何解决这个问题吗?

谢谢

add_filter( 'script_loader_tag', 'set_scripts_type_attribute', 10, 3 );

javascript wordpress turbolinks hotwire-rails
1个回答
0
投票

似乎您没有为脚本设置任何依赖项。这意味着脚本将无法找到它需要的其他 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');
© www.soinside.com 2019 - 2024. All rights reserved.