在functions.php中排队Javascript

时间:2018-05-03 14:42:58

标签: javascript php wordpress function

我使用functions.php排队javascript文件,其中一个是外部链接,另一个不是。

它们都正在加载,但它在外部加载内部文件,因此有些代码无效。

这是代码:

function _tandt_scripts() {
  $my_js_ver  = date("ymd-Gis");

  wp_deregister_script( 'jquery' );
  wp_register_script('jquery', 'https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js', array(), '2.1.3', true);

  wp_enqueue_script( '_tandt-main', get_template_directory_uri() . '/_assets/js/main/min/main-min.js', array(), $my_js_ver, true );

  if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
      wp_enqueue_script( 'comment-reply' );
  }
}

add_action( 'wp_enqueue_scripts', '_tandt_scripts' );

正如您在屏幕截图中看到的那样,它首先加载'main-min.js',而它应该是相反的。

截图

enter image description here

2 个答案:

答案 0 :(得分:1)

您重新注册了jQuery脚本,但您没有将其排入页面。

wp_register_script之后添加此行:

wp_enqueue_script("jquery");

并更改此行:

wp_enqueue_script( '_tandt-main', get_template_directory_uri() .
    '/_assets/js/main/min/main-min.js', array(), $my_js_ver, true );

为:

wp_enqueue_script( '_tandt-main', get_template_directory_uri() . 
    '/_assets/js/main/min/main-min.js', array("jquery"), $my_js_ver, true );

jquery作为依赖项。

答案 1 :(得分:0)

您尚未指定第二个脚本依赖于第一个脚本。

wp_enqueue_script( '_tandt-main',
    get_template_directory_uri() . '/_assets/js/main/min/main-min.js',
    array(), $my_js_ver, true );

此行应更改为包含jquery dependemcy。

wp_enqueue_script( '_tandt-main',
    get_template_directory_uri() . '/_assets/js/main/min/main-min.js',
    array('jquery'), $my_js_ver, true );

有关详细信息,请参阅WordPress文档:wp_enqueue_script()