首页 > 解决方案 > 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

标签: jquerywordpress

解决方案


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');

推荐阅读