我在javascript文件中的更改没有反映在我的插件中


My changes in javascript file not reflecting in my plugin

我对Javascript文件进行了更改。尝试禁用插件/重新激活/删除javascript文件并重新加载,但似乎没有按照我的新javascript代码上传页面。

最后,我进入视图源代码,注意到脚本src设置为"wp-content/plugins/my-plugin/js/my-plugin.js?ver=4.3.1"

如果我在浏览器中输入这个URL,我会拿回我的旧代码。但是,如果我删除?ver=4.3.1末尾的查询字符串,它将加载我的新文件代码。

我不确定是谁添加了ver=4.3.1。我的插件代码中没有它。有人能告诉我如何删除它并请求我最新的javascript代码吗?我已经一个多小时无法解决这个问题了。

非常感谢!

我想,插件中使用了wp_enque_script函数来加载这个javascript文件。

wp_enque_scriptstring$handle,string$src=false,$deps=array(),$ver=false,$in_footer=false

根据文档,它将$ver作为可选参数:

(string|bool|null)(可选)指定脚本版本号的字符串,如果有,则会将其作为缓存的查询字符串添加到URL中破坏目的。If版本设置为false,版本号为自动添加等于当前安装的WordPress版本。如果设置为null,则不添加任何版本。

默认值:错误

字符串"ver=4.3.1"是自动添加的,因为您在函数调用中没有指定$ver变量。所以问题出在你的浏览器上,因为它加载了缓存版本。

作为快速解决方案,如果您的插件未在生产中,您可以直接删除浏览器的缓存。但这种解决方案对其他没有删除缓存的用户没有帮助。

如果您将源代码中的"ver=4.3.1"字符串更改为其他字符串,您的浏览器将加载新版本的javascript文件。您可以通过修改wp_enque_script调用来完成此操作。示例:

wp_enqueue_script( "my_plugin_js_handle", "path_to_js_file", array(), "1.2.3" );
  • 用您选择的唯一句柄替换my_plugin_js_handle字符串
  • 用js文件的url替换path_to_js_file
  • 1.2.3替换为插件的实际版本号

这是因为WordPress缓存您的JavaScript文件。为了摆脱缓存问题,设置每次运行WordPress时都会更改的版本属性。我通常使用时间函数

wp_enqueue_script( 'handle', 'src', array() , time() );