首页 > 编程问答 >Javascript 在我的本地服务器上运行,但在 WordPress 上不起作用

Javascript 在我的本地服务器上运行,但在 WordPress 上不起作用

时间:2024-07-20 14:16:09浏览次数:13  
标签:javascript wordpress

大家好,我有一个问题。我有一个在本地服务器中完美运行的模板/主题,但是当我将其移动到 Wordpress 时,根据我的研究,我得到了“jQuery 不兼容”的信息。  我附上了代码的图像。你能帮我一下吗,一切看起来都很完美,在我看来一切都很完美,但在 Wordpress 中却不然。提前谢谢你!

console showing the error the html showing the selector that shows as null javascript code that is causing the problem

主题是使用 Foundation 6 创建的,它使用旧的 Jquery 和 Webpack。我真的不知道。不知道发生了什么,因为它在本地运行得很好。提前非常感谢!


看起来你的 WordPress 网站使用的 jQuery 版本与你的主题所期望的不同,导致了冲突。WordPress 自带了 jQuery 库,而且它可能会加载一个与你的主题不兼容的版本。

以下是一些可能解决此问题的步骤:

1. 确认 jQuery 版本冲突:

  • 在你的浏览器的开发者控制台(通常按 F12 键打开)中,查看错误消息。它应该会告诉你哪个脚本正在调用 jQuery() $() ,以及 jQuery 的版本。
  • 检查你的主题文件中,看看它期望使用哪个版本的 jQuery。你可以在主题的 functions.php 文件、 header.php 文件或任何包含 JavaScript 代码的文件中找到它。

2. 阻止 WordPress 加载其自身的 jQuery 版本:

  • 最佳实践是让你的主题使用 WordPress 自带的 jQuery 版本,而不是加载自己的版本。
  • 要阻止 WordPress 加载其自身的 jQuery 版本,你需要在你的主题的 functions.php 文件中使用 wp_deregister_script() wp_enqueue_script() 函数。以下是如何操作的示例代码:
function modify_jquery() {
  if (!is_admin()) {
    wp_deregister_script('jquery');
    wp_register_script('jquery', ("https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"), false, '3.5.1', true);
    wp_enqueue_script('jquery');
  }
}
add_action('wp_enqueue_scripts', 'modify_jquery');
  • 请注意,你需要将代码中的 jQuery 版本号 ( 3.5.1 ) 替换为你的主题所需的版本号。
  • 此代码首先检查你是否在 WordPress 管理区域之外( !is_admin() )。这很重要,因为禁用 WordPress 管理区域中的 jQuery 可能会导致问题。

3. 确保以正确的顺序加载脚本:

  • jQuery 应该在依赖于它的任何其他脚本之前加载。你可以在 wp_enqueue_script() 函数的第四个参数中指定依赖关系。例如,要使你的主题脚本依赖于 jQuery,你可以使用以下代码:
wp_enqueue_script( 'my-theme-script', get_template_directory_uri() . '/js/script.js', array( 'jquery' ), '1.0', true );

4. 使用 jQuery 的 noConflict 模式:

  • 如果因为某些原因无法阻止 WordPress 加载其自身的 jQuery 版本,则可以使用 jQuery 的 noConflict 模式。这将允许你使用 jQuery 变量而不是 $ 变量来引用 jQuery。以下是如何操作的示例代码:
jQuery(document).ready(function($) {
  // 在这里使用 $ 变量引用 jQuery
});

5. 清除缓存:

  • 如果你正在使用缓存插件,请确保在进行任何更改后清除缓存。

完成这些步骤后,你的主题应该可以正常加载并使用正确的 jQuery 版本。如果问题仍然存在,请仔细检查控制台中的错误消息,以获取有关问题原因的更多信息。

标签:javascript,wordpress
From: 78770332

相关文章

  • Docker部署wordpress-6.6
    目录一.环境准备二.准备对应的配置文件三.编写Dockerfile四.构建镜像五.配置MySQL 六.安装wordpress 七.扩展一.环境准备localhost192.168.226.25rocky_linux9.4Dockerversion27.0.3关闭防火墙和selinux,进行时间同步。安装docker#step1:安装必......
  • JavaScript与DOM的奇妙探险:从入门到精通的实战笔记
    文章目录JavaScript基本说明特点两种使用方式在script中写使用script标签引入JS文件数据类型介绍特殊值运算符算数运算符赋值运算符逻辑运算符:![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/bbf5c150699845af837d3c45c926e941.png)条件运算符数组的定义基......
  • javaScript常用对象
    1. Array对象JavaScriptArray对象用于定义数组1.1定义格式数组的定义格式有两种:方式1var变量名=newArray(元素列表);例如:vararr=newArray(1,2,3);//1,2,3是存储在数组中的数据(元素)方式2var变量名=[元素列表];例如:vararr=[1,2,3];//1,2,3是......
  • JavaScript 异步编程:提升现代Web应用的性能与体验
    异步概念解析在编程领域,异步(Asynchronous)是一种允许程序继续执行而不等待某个操作完成的机制,与之相反的是同步(Synchronous),其中程序会暂停并等待每个操作完成才继续下一步。异步编程的核心优势在于提高了应用程序的响应性和资源利用率。想象一下,你正在厨房准备晚餐,同步操作......
  • JavaScript实现通过按纽控制电梯上下移动,并实现帧频动画
    varapp=newPIXI.Application(520,460);document.body.appendChild(app.view);//创建背景varbg=newPIXI.Sprite.fromImage("res/lianxi/elevator/bg.png");app.stage.addChild(bg);varelevator=newPIXI.Sprite.fromImage("res/lianxi/elevator/dt......
  • 使用 JavaScript 检测大写锁定键(Detect Caps Lock with JavaScript)(转)
    原文地址:DetectCapsLockwithJavaScript-使用JavaScript检测大写锁定ByDavidWalshonFebruary6,2024作者:大卫·沃尔什,2024年2月6日Anyoneiscapableofhavingtheircapslockkeyonatanygiventimewithoutrealizingso.Userscaneasilyspotunwan......
  • JavaScript 基础知识 Day01
    一、计算机基础知识1、计算机数据存储单位位(Bit):1bit可以保存一个0或者1(最小的存储单位)字节(Byte):1B=8b千字节(KB):1KB=1024B兆字节(MB):1MB=1024KB吉字节(GB):1GB=1024MB太字节(TB):1TB=1024GB2、关于JavaScript 它是在1952年2月由网景开......
  • JavaScript复习记录(6)— 对闭包的理解,闭包使用场景
    闭包(Closure)指的是一个函数可以访问其外部作用域(即使这个函数是在外部作用域之外执行的)。换句话说,闭包是函数和声明该函数的词法环境的组合。闭包的形成闭包在以下情况下形成:当一个内部函数被保存到外部后,即使外部函数已经执行完毕,内部函数仍然可以访问外部函数中的变量。......
  • JavaScript手机号实名认证接口如何集成 验证手机号与持有人是否一致
    手机号实名认证接口是一种用于验证手机号码是否存在的实名登记服务,能够核验三大运营商(中国移动、中国电信、中国联通)手机号码的实名认证状态,通常被应用于网站、电商平台注册、支付平台注册等场景中,以便于核验用户身份的真伪,以此来保障用户身份信息与财产不受损失!随着市场......
  • JavaScript 异步编程
    0x01概念说明与基本使用Promise是在ES6中引入的类,用于更好地编写复杂的异步任务在ES6之前的异步请求的处理方案中,通常通过传递回调函数的方式处理请求结果,由于各个请求对回调函数不统一,每次请求时都需要查看相应的源码,造成效率低下,因此需要约定共同的标准,即Promise类......