无法将第三方库链接到Sage主题WordPress中的js脚本

时间:2016-12-27 10:34:12

标签: javascript php wordpress trellis roots-sage

我已通过bower install --save moment安装了名为 Moment.js 的第三方库。我有一个名为 calendar.js 的脚本放在我主题的脚本文件夹中。但是,当我在calendar.js中使用时,似乎图书馆没有链接到它。当我将所有代码从 calendar.js 移至 main.js 时,一切正常。问题是我需要通过加载json文件并通过AJAX发送数据将数据传递到脚本中,因此我需要创建一个单独的脚本,在本例中为 calendar.js 即可。那么我该如何解决这个问题呢?

修改:我已在我的主题functions.php中加入 calendar.js ,如下所示:

function igs_scripts_styles() {
  wp_enqueue_script( 'calendar', get_template_directory_uri() . '/assets/scripts/calendar.js', array(), false, true );
}
add_action('wp_enqueue_scripts', 'igs_scripts_styles');

2 个答案:

答案 0 :(得分:0)

在wordpress中使用之前,您需要注册并排队脚本,然后只有wordpress才能识别脚本。根据我的理解,使用wp_enqueue_script正确添加main.js和Moment.js脚本,这就是为什么它们工作正常。我相信如果你将Calendar.js排队,JS文件也可以正常工作。

答案 1 :(得分:0)

这不是解决这个问题的方法,而是一种解决方法。所以我注意到当我将所有代码从 calendar.js 移动到 main.js 时,它运行得很好。我所做的是将 calendar.js 列入 main.js 的依赖项(因为moment.js在 main.js 中可用)。这是代码:

 wp_enqueue_script( 'calendar', get_template_directory_uri() . '/assets/scripts/calendar.js', ['sage/js'], null, true );