包含不起作用的文件时间脚本的enQueue_script

时间:2019-02-01 作者:Zayd Bhyat

嘿,伙计们,我正在尝试将javascript与filemtime排队,但每次我这样做时,我编写的自定义js脚本似乎都没有排队。

function add_js_scripts(){
   wp_register_script(\'lib\',
      get_template_directory_uri().\'/js/lib.js\', 
      array(), 
      filemtime(get_template_directory() . \'/js/lib.js\'), 
      null, 
     \'all\'
   );

   wp_enqueue_script(\'lib\');
}

add_action(\'wp_enqueue_scripts\',\'add_js_scripts\');
现在的问题是lib。js文件根本没有出现在网站上。没有php错误,如果我删除filemtime 它显示的参数。出于开发目的,我一直在对其进行版本控制。

有没有人能告诉我,是否有更好的方法将脚本排队,以及是否有方法使用filemtime将其正确排队。

另请注意,我通过以下方式成功地将样式表排入队列:

function add_css_scripts() {

    wp_register_style( \'style\', 
        get_template_directory_uri() . \'/style/style.css\', 
        array(), 
        filemtime(get_template_directory() . \'/style/style.css\'), 
        null, 
        \'all\'
    ); 

    wp_enqueue_style(\'style\');

}
add_action( \'wp_enqueue_scripts\', \'add_css_scripts\' );

2 个回复
最合适的回答,由SO网友:Zayd Bhyat 整理而成

因此,似乎有时出于某种原因,某些脚本在您注册脚本时似乎没有排队,然后在参数中使用filemtime时将其排队:

function add_js_scripts(){
wp_register_script(\'lib\',
get_template_directory_uri().\'/js/lib.js\', 
array(),
filemtime(get_template_directory() . \'/js/lib.js\'), 
true); 
wp_enqueue_script(\'lib\');
}
add_action(\'wp_enqueue_scripts\',\'add_js_scripts\');
要解决此问题,可以尝试将脚本排入一个子函数,如下所示:

wp_enqueue_script(\'lib\',
get_template_directory_uri().\'/js/lib.js\', array(),
filemtime(get_template_directory() . \'/js/lib.js\'), 
true); 
这似乎解决了脚本没有为我排队的问题。我只是想感谢金莫伊·库马尔·保罗为我指引了正确的方向。

SO网友:Chinmoy Kumar Paul

wp_register_script() 函数正在接受5个参数。您正在传递6参数。因此,请更换

wp_register_script(
    \'lib\',
    get_template_directory_uri().\'/js/lib.js\', 
    array(), 
    filemtime(get_template_directory() . \'/js/lib.js\'), 
    null, 
    \'all\'
);
使用

wp_register_script(
    \'lib\',
    get_template_directory_uri().\'/js/lib.js\', 
    array(), 
    filemtime(get_template_directory() . \'/js/lib.js\'), 
    true
);