查询字符串,例如“?” 或“&”有时会附加在 WordPress 中资产(CSS、JS)的末尾,以及版本号,例如 edd.min.css?ver=2.7.9
. 代理服务器和较旧的 CDN 可能无法缓存这些内容。 您可能还会在速度测试中看到有关查询字符串的警告。 您可以安全地从静态资源中删除查询字符串,它不会损害您的网站。 它只能帮助它。
重要的: 此功能已弃用,并已从版本 1.6.6 中的 Perfmatters 中删除。 如果需要,现代 CDN 可以缓存查询字符串。 此外,速度测试工具(GTmetrix、PageSpeed Insights、WebPageTest、Pingdom 等)不再显示有关删除查询字符串的警告。
当需要中断缓存时,这也提高了兼容性:插件/主题资产更新或使用 WordPress 定制器和页面构建器。
我们不推荐它,但您可以添加 这个代码片段 如果您想继续使用该功能,请访问您的网站。
这是我们网站上删除查询字符串之前的示例。
这是删除它们后的示例。
删除查询字符串
请按照以下步骤从静态资源中删除查询字符串。
步骤1
单击进入 Perfmatters 插件设置。

第2步
在“选项”选项卡和“常规”子导航菜单下,打开“删除查询字符串”。
第 3 步
向下滚动并单击“保存更改”。
如果您正在争论使用哪个插件来删除查询字符串,请务必注意,我们在 Perfmatters 中内置了一个排除项,以提供与我们的脚本管理器更好的兼容性。
如果您愿意,删除查询字符串也会有所帮助 预加载资源,因为浏览器会看到确切的 URL。
查询字符串没有被删除?
有时插件或主题开发人员没有正确地将他们的文件排入队列或对版本号的引用进行硬编码。 这禁用了使用 WordPress 钩子检查以正确删除查询字符串的能力。 这不是 Perfmatters 插件的问题,但这意味着您需要编辑他们的文件以手动删除查询字符串。
示例 1 – 社会战插件
一个例子是 Social Warfare WordPress 插件。 您可能会看到这个文件带有一个查询字符串: wp-content/plugins/social-warfare/fonts/sw-icon-font.woff?ver=2.2.5. 解决此问题的唯一方法是编辑他们的插件以删除硬编码版本。 我们不喜欢推荐这个,但不幸的是,这是解决问题的唯一方法。

对于社会战,您需要编辑的文件是位于此处的“header-meta-tags.php”文件: /wp-content/plugins/social-warfare/functions/frontend-output/. 您可以通过 FTP 下载它。 默认情况下,这是原始文件的外观。

您可以删除硬编码的 SWP_VERSION,它将解决问题。 下面是替换该文件中第 86 – 92 行的代码,也是我们在网站上使用的代码。
// Echo it if we're using the Admin Head Hook
echo '
'; else : // Add it to our array if we're using the froSntend Head Hook $info['html_output'] .= PHP_EOL . '
';
正如您在下面看到的,Social Warfare 文件上的查询字符串现在已经消失了。

查询字符串和页面构建器兼容性
在大多数情况下,我们已经看到删除查询字符串会导致流行的页面构建器插件(如 Elementor 和 Beaver Builder)出现问题。 这仅仅是因为它们依赖于动态的 CSS 文件的版本控制。 因此,我们不建议您在完成设计之前启用此功能。 但是,当您进行更改然后重新启用时,它可以很容易地被禁用。