【问题标题】:Unable to add JQuery to wordpress without getting Syntax or Call to undefined function error无法在没有得到语法或调用未定义函数错误的情况下将 JQuery 添加到 wordpress
【发布时间】:2019-01-02 23:35:19
【问题描述】:

我正在 Wordpress 上开发,无论在什么地方或在哪里添加最基本的 jQuery 的 javascript 代码 sn-ps,我只会收到关于 unexpected ({ 或“文档意外结束”或其他内容的错误像这样,尽管在 jQuery 或 javascript 中调用的一些类没有出现在文档中,因为代码 sn-p 引用了其他东西。我做错了什么,当我添加一个 sn-p 时如何让它运行?我正在使用下划线 _s 裸骨主题。我在 head 部分添加了 jQuery cdn 并添加了以下代码:

 jQuery( document ).ready(function() {
    console.log( "ready!" );
    });

我仍然收到关于 Call to undefined function jQuery 的错误,我不是编码员,并且正在使用下划线 _s 主题,但希望能提供任何帮助,据我了解,让 jQuery 启动并运行简单的代码 sn-ps,例如上面应该是直截了当的,但我被困在第一步。

编辑 - 我添加的所有代码都将进入functions.php,我意识到之前我在这个文件中添加了其他功能,所以我尝试添加一个对它没有任何作用并且很好的功能,所以现在我想知道我是否只允许在 functions placeholder(){}; 文件中添加包含在 functions placeholder(){}; 中的脚本?如果是这样,我应该直接在 Wordpress 模板的其他部分注入 javascript/jQuery 吗?我试图创建一个menu toggle,那么代码是否应该直接进入菜单所在的header.php

【问题讨论】:

  • 您是否 100% 肯定您已将 jQuery 库加入队列?
  • 嗨,欢迎您,您应该发布确切的错误,而不是“类似的东西” :) 如果您的问题很明确并且错误的详细定义正确,它将帮助我们。
  • 我在头部和 wp_head 之前有
  • @aliusman 根据我的尝试,我会遇到很多不同的错误,但通常绝大多数时间都是unexpected { or (,总是指向我的新jQuery代码以@开头的行987654334@。我注意到我的js folder 中没有 jqeury 的本地版本 - 刚才我设法正确添加了一些代码,我只是按照之前添加到 functions.php 的 sn-ps 的格式开始带功能 - function mainmenu_toggle( $html ) { }; 我不是要在没有 function 开头的 functions.php 或其他东西的情况下输入脚本吗?

标签: javascript jquery wordpress


【解决方案1】:

Wordpress 自带 jQuery;没有必要添加它。但重要的是您只在脚本加载后调用jQuery()。我想这就是问题所在。首先,将您的更改更改为header.php

然后将你的脚本作为一个新的 *.js 文件放在主题文件夹中的 js 文件夹中。现在打开functions.php,找到[themename]_scripts()函数。

在底部,添加

wp_enqueue_script( 'myscript', get_template_directory_uri() . '/js/myscript.js', array(), '20190103', true );

(将myscript.js 替换为您的文件的实际名称)。

我现在建议将此作为您的 JS 脚本的测试:

alert(jQuery);

当您刷新网站时,您应该会看到一个带有简短功能的警报。这意味着您现在可以使用 jQuery,最好是这样:

(function ($) {
    // jQuery code here
    $("body").css("opacity", "0.5"); // test
})(jQuery);

【讨论】:

  • 我只在我的 js 文件夹中看到 customizer.jsnavigation,jsskip-link-focus-fix.js,我使用的是下划线 _s 裸骨主题,在上一两个月下载的 @Chris-G,我按照你的建议将它添加到 enqueue 部分,我在其他 enqueque 脚本之后添加了它,但现在我收到一条错误消息,阅读 syntax error, unexpected 'if' (T_IF) 指向我放入的 enqueue 之后的行,这之前没有发生。
  • 我试图将 js 插入functions.php,这似乎是问题所在,据我所知,functions.php 不适用于 js 或 jquery - 这是正确的吗?跨度>
  • @bldingbloks 你似乎已经明白了,但我确实说Then put your script as a new *.js file in the js folder in the theme folder.(我确实下载了_s主题,所以正在使用与你相同的主题文件)。
【解决方案2】:

好的,伙计们,我想我明白了,正如我提到的,我不是编码员,事实证明,由于使用了许多相似的术语和语法格式,我一直将 php 语法误认为 javascript 和 jquery。自从意识到这一点后,我已经从 functions.php 文件中删除了 javascript,并将使用单独的 .js files 作为我的模板的一部分,以保存我的 javascriptjQuery 函数。

我现在了解了我的方式的错误,并启用了我最初希望运行的 jQuery,并结束了所有语法错误,今天我学到了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 2020-01-14
    • 2018-01-12
    • 2011-12-15
    相关资源
    最近更新 更多