Wordpress 无法识别 JS 库

Wordpress does not recognize JS library

我目前遇到无法在wordpress 中导入JS 库的问题。它是 jsPDF 库,在 wordpress 中,当我按下按钮时它会抛出此错误消息。 ReferenceError: Can't find variable: jsPDF 我在functions.php里加了这一行,也在本地试过了

    wp_enqueue_script( 'jsPDF', get_stylesheet_directory_uri() . 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.3.0/jspdf.es.js', array( 'jquery' ),'',true );

    wp_enqueue_script( 'jsPDF', get_stylesheet_directory_uri() . '/scripts/jsPDF.js', array( 'jquery' ),'',true );

我使用的所有其他自定义脚本都有效。这是使用 jsPDF 的脚本。脚本已加载,我可以通过函数前的 console.log 来判断。

console.log("generate PDF loaded");

function testPDF(){
    console.log("testPDF-function works")
    var doc = new jsPDF('p', 'pt', 'a4');

    doc.fromHTML($('#a4').get(0), 20,20, {
        'width':500
    });

    doc.save('Test.pdf');
}

您对脚本进行排队的方式存在两个问题。

  1. 脚本的名称应该是唯一的。
  2. 可能是您的错误消息的原因:您正在将 cdn 定位在您的插件文件夹中,这不是文件所在的位置。

因此您的代码应如下所示:

wp_enqueue_script( 'jsPDF', 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.3.0/jspdf.es.js', array( 'jquery' ),'',true );

wp_enqueue_script( 'myJsPDF', get_stylesheet_directory_uri() . '/scripts/jsPDF.js', array( 'jquery' ),'',true );

在您的第一个 wp_enqueue_script 中,您有 get_stylesheet_directory_uri(),因此它正在您的主题文件夹中寻找文件。但只需要是CDN的URL即可。

在第二个wp_enqueue_script中你给它一个唯一的名字,所以不会有冲突。也许再看看 https://developer.wordpress.org/reference/functions/wp_enqueue_script/