【问题标题】:JS files doesn't work correctly in wordpressJS 文件在 wordpress 中无法正常工作
【发布时间】:2020-04-11 21:30:27
【问题描述】:

正如我在标题中提到的,我的 js 文件存在一些问题。
我已经测试了 HTML 模板中的脚本并且工作正常,但是当我将它们放入 functions.php 文件时,有些脚本无法正常工作。

这里是functions.php 文件:

<?php
function load_stylesheets(){
 /************/
}

function add_js(){
    wp_register_script('jquery-min', get_template_directory_uri().'/js/jquery.min.js', array('jquery'), 2, true);
    wp_enqueue_script('jquery-min');
    wp_register_script('jquery-migrate', get_template_directory_uri().'/js/jquery/jquery-migrate.min.js', array('jquery'), 2, true);
    wp_enqueue_script('jquery-migrate');
    wp_register_script('popper', get_template_directory_uri().'/js/popper/popper.min.js', array('jquery'), 2, true);
    wp_enqueue_script('popper');
    wp_register_script('bootstrap', get_template_directory_uri().'/js/bootstrap/js/bootstrap.min.js', array('jquery'), 2, true);
    wp_enqueue_script('bootstrap');
    wp_register_script('easing', get_template_directory_uri().'/js/easing/easing.min.js', array('jquery'), 2, true);
    wp_enqueue_script('easing');
    wp_register_script('jquery.waypoints', get_template_directory_uri().'/js/counterup/jquery.waypoints.min.js', array('jquery'), 2, true);
    wp_enqueue_script('jquery.waypoints');
    wp_register_script('jquery.counterup', get_template_directory_uri().'/js/counterup/jquery.counterup.js', array('jquery'), 2, true);
    wp_enqueue_script('jquery.counterup');
    wp_register_script('carousel', get_template_directory_uri().'/js/owlcarousel/owl.carousel.min.js', array('jquery'), 2, true);
    wp_enqueue_script('carousel');
    wp_register_script('lightbox', get_template_directory_uri().'/js/lightbox/js/lightbox.min.js', array('jquery'), 2, true);
    wp_enqueue_script('lightbox');
    wp_register_script('typed', get_template_directory_uri().'/js/typed/typed.min.js', array('jquery'), 2, true);
    wp_enqueue_script('typed');
    wp_register_script('contactform', get_template_directory_uri().'/js/contactform.js', array('jquery'), 3, true);
    wp_enqueue_script('contactform');
    wp_register_script('main', get_template_directory_uri().'/js/main.js', array('jquery'), 3, true);
    wp_enqueue_script('main');
}
add_action("wp_enqueue_scripts", "load_stylesheets", "add_js", 999);
?>

提前致谢!

【问题讨论】:

  • 您的意思是“没有按应有的方式工作”?他们是否正在加载?
  • 日志中没有报错,所以我认为它们加载正确,但是有些功能不起作用,例如流畅的js滚动
  • PD:执行平滑滚动的主脚本在 html-template 版本中运行良好。

标签: javascript php jquery html wordpress


【解决方案1】:

您不能像这样挂接到wp_enqueue_scripts 并调用多个函数:

add_action("wp_enqueue_scripts", "load_stylesheets", "add_js", 999);

add_action() 接受这四个参数:

  • $tag (string)(必需)$function_to_add 所挂钩的操作的名称。
  • $function_to_add(可调用)(必需)您希望调用的函数的名称。
  • $priority (int)(可选) 用于指定与特定操作关联的函数的执行顺序。较低的数字对应于较早的执行,具有相同优先级的函数按照它们添加到操作的顺序执行。
    默认值:10
  • $accepted_args (int)(可选)函数接受的参数数量。 默认值:1

因此,要添加样式表和脚本,您必须这样做:

add_action( 'wp_enqueue_scripts', 'load_stylesheets', 999 );
add_action( 'wp_enqueue_scripts', 'add_js', 999 );

【讨论】:

  • @JeanLouis 很高兴它成功了,欢迎来到 Stack Overflow。如果此答案解决了您的问题,请考虑将其标记为已接受 :)
猜你喜欢
  • 2020-04-05
  • 2017-06-16
  • 2013-11-19
  • 2016-10-13
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
  • 2017-01-08
相关资源
最近更新 更多