jquery - JQuery 排队导致 wordpress 未捕获错误
问题描述
嗨,我是初学者,正在创建简单的 wordpress 模板。除了我的functions.php文件( wp_enqueue('jquery'); )中的粗体代码行之外,一切正常。当我排除它时,错误消失了,但是当我查看源代码时,我没有看到 wordpress 添加的 JQuery。不确定这是代码问题还是 Jquery 版本问题。我尝试添加 JQuery 迁移插件,但仍然是同样的错误。我在 Laragon 设置的本地机器上运行所有这些。下面是我的代码和错误。感谢任何帮助。
这是我的functions.php文件:
<?php
function load_css(){
wp_register_style('bootstrap', get_template_directory_uri() . '/css/bootstrap.min.css', array(), false, 'all');
wp_enqueue_style('bootstrap');
}
add_action('wp_enqueue_scripts', 'load_css');
function load_js(){
wp_enqueue('jquery');
wp_register_style('bootstrap', get_template_directory_uri() . '/js/bootstrap.min.js', 'jquery', false, true);
wp_enqueue_script('bootstrap');
}
add_action('wp_enqueue_scripts', 'load_js');
这是 header.php 文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<?php wp_head();?>
</head>
<body>
这是footer.php文件
<?php wp_footer();?>
</body>
</html>
这是front-page.php文件
<?php get_header();?>
<?php get_footer();?>
错误信息: 致命错误:未捕获错误:调用 C:\laragon\www\test\wp-content\themes\SeanTheme\functions.php:13 中未定义的函数 wp_enqueue() 堆栈跟踪:#0 C:\laragon\www\test\ wp-includes\class-wp-hook.php(287): load_js('') #1 C:\laragon\www\test\wp-includes\class-wp-hook.php(311): WP_Hook->apply_filters (NULL, Array) #2 C:\laragon\www\test\wp-includes\plugin.php(484): WP_Hook->do_action(Array) #3 C:\laragon\www\test\wp-includes\script -loader.php(2004): do_action('wp_enqueue_scri...') #4 C:\laragon\www\test\wp-includes\class-wp-hook.php(287): wp_enqueue_scripts('') #5 C:\laragon\www\test\wp-includes\class-wp-hook.php(311): WP_Hook->apply_filters(NULL, Array) #6 C:\laragon\www\test\wp-includes\plugin. php(484): WP_Hook->do_action(Array) #7 C:\laragon\www\test\wp-includes\general-template.php(3005): do_action('wp_head') #8 C:\laragon\www\test\wp-content\themes\SeanTheme\header.php(8): wp_head() #9 C:\laragon\www\test\wp-includes\template.php (730): require_once('C:\laragon\www\...') #10 C:\laragon\www\test\wp-includes\template in C:\laragon\www\test\wp-content\themes第 13 行的 \SeanTheme\functions.php
解决方案
WordPress 会自动为您加载 jQuery,如果另一个脚本需要 jquery,只需在 $deps 参数中指定它,当您对其他 JavaScript 文件进行排队时。所以删除 wp_enqueue('jquery')。
function load_js(){
wp_enqueue_script('bootstrap', get_template_directory_uri() . '/js/bootstrap.min.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'load_js');
推荐阅读
- flutter - Flutter 如何在显示为文本时不显示列表的 [] 括号?
- c# - 实体框架和 MVC 5. 来自数据库的数据未显示在本地主机上
- css - 无法断字:中文和日文的断词 css
- c++ - 在 C++ 中继承层次结构时提取实现者
- java - 如何在 Swagger Codegen Maven 插件中使枚举字段可选?
- reactjs - 如何在 js Web 应用程序中保持身份验证令牌的安全?
- c++ - 将对象存储为基本 VIRTUAL 类
- angular - node_modules/primeicons/primeicons.css”由于 MIME 类型 (“text/html”) 不匹配 (X-Content-Type-Options: nosniff) 而被阻止。在角6
- r - 是否有用于创建具有两个向量的空边列表(双模式)的 R 函数?
- java - 是否有任何关于 Jenkins 的 Pipeline 插件套件(内部)结构的文档?