正在将外部Java脚本函数入队。php

时间:2018-04-16 作者:Zayd Bhyat

由于某种原因,我似乎无法将外部JS文件排队。我可以将外部css文件排队,但不能将JS文件排队。我有一个使用引导css框架的自定义主题。我的职能。php如下:

function add_css_scripts(){
    wp_enqueue_style(\'boot-strap\',\'https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css\',false);
    wp_enqueue_style(\'style\', get_template_directory_uri() . \'/style.css\', false, \'all\');
    wp_enqueue_style(\'media\', get_template_directory_uri(). \'/assets/css/media.css\', false, all);

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

/*Jquery Scripst*/
function add_js_scripts(){
    wp_deregister_script( \'jquery\' );
    //wp_enqueue_script(\'jquery\', \'https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js\', false, \'3.3.1\', true);
    wp_register_script(\'jquery\', \'https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js\', false, \'3.3.1\', true);
    wp_enqueue_script(\'jquery\');
    wp_register_script(\'pre\', get_template_directory_uri(). \'/assets/js/pre.js\',\'1.0.0\', array(\'jquery\'), \'1.0.0\', true);
    wp_enqueue_script(\'pre\');
    //wp_enqueue_script(\'bootstrap\', \'https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js\', array(\'jquery\'), \'4.1.0\', true);
    wp_register_script(\'bootstrap\', \'https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js\', array(\'jquery\'), \'4.1.0\', true);
    wp_enqueue_script(\'bootstrap\');
    //wp_enqueue_script(\'popper\', \'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js\', array(\'jquery\'), \'1.12.9\', true);
    wp_register_script(\'popper\', \'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js\', array(\'jquery\'), \'1.12.9\', true);
    wp_enqueue_script(\'popper\');
}
add_action(\'wp_enqueue_scripts\',\'add_js_scripts\');
所有被注释掉的都是我尝试过的代码,但都不起作用wp_deregister(\'jquery\'); 因为我需要jquery版本3,当我将脚本添加到页脚时,它就可以工作了。php它可以工作。

2 个回复
SO网友:Pwilson77

而不是使用get_template_directory_uri().\'/assets/js/pre.js\',\'1.0.0\'

尝试使用get_theme_file_uri(\'/assets/js/pre.js\',\'1.0.0\')

它对我有用,因为使用时的某些原因get_template_directory_uri() 您将得到403错误

SO网友:Abhik

使用外部jQuery是个坏主意。捆绑版经过优化,可以更好地与WordPress配合使用。

对于您的问题,我认为问题在于您注册外部jquery的方式。使用空数组,而不是false 依赖关系中。

function add_js_scripts(){
    wp_deregister_script( \'jquery\' );

    wp_register_script(\'jquery\', \'https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js\', array(), \'3.3.1\', true);

    wp_enqueue_script(\'pre\', get_template_directory_uri(). \'/assets/js/pre.js\',\'1.0.0\', array(\'jquery\'), \'1.0.0\', true);

    wp_enqueue_script(\'bootstrap\', \'https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js\', array(\'jquery\'), \'4.1.0\', true);

    wp_enqueue_script(\'popper\', \'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js\', array(\'jquery\'), \'1.12.9\', true);

}
add_action(\'wp_enqueue_scripts\',\'add_js_scripts\');  
此外,您不需要将jquery单独排队。当您将任何依赖于jquery的脚本设置为jquery时,它会自动将其排在脚本之前。

结束

相关推荐

WP_LOCALIZE_SCRIPT()和JavaScript命名空间

如你所知,wp_localize_script() 允许从PHP对象创建JavaScript对象。因此,在运行下面示例中的代码之后:wp_localize_script(\'my-script\', \'var_name\', $var); // This works 我们将以一个名为var_name 可在脚本中访问的my-script. 此JavaScript变量是从原始PHP变量复制而来的$var.目前一切正常。我面临的问题是:我喜欢能够分配var_name 到JavaScript命名空间