🚀 Gato GraphQL v18.0 发布:解析查询缓存、安全加固与新 Gemini 翻译提供商
Gato GraphQL v18.0 正式发布 🎉
本次发布处理速度大幅提升、内存使用量显著减少,支持将已解析的 GraphQL 查询缓存到磁盘以跳过重复的解析和编译工作,收紧了 Email Sender、HTTP Client 和 Environment Variable 字段的默认 capability 检查,包含多项错误修复和安全补丁,并新增了 Gemini 翻译提供商以及翻译功能的可配置 Request 和 Connection 超时设置。
请继续阅读了解主要内容。
⚡ 将已解析的 GraphQL 查询缓存到磁盘
每个请求都需要解析 GraphQL 查询、对 schema 进行验证并构建执行计划。v18 现在可以将准备好的查询持久化到磁盘,并在后续运行时重新加载——完全跳过重复的解析和编译工作。
在 Settings 页面的 Server Configuration > Caching > Cache parsed GraphQL queries? 下启用此功能:

此功能缓存的是查询的准备处理(解析和编译),而非响应数据。关于响应的 HTTP 缓存,请参阅添加 HTTP 缓存。
文件存储在插件缓存目录中。如果插件文件夹不可写,可以将缓存指向其他位置——请参阅覆盖缓存文件夹。
➡️ 详情请参阅缓存已解析的 GraphQL 查询。
⚡ 全面提速与轻量化
除解析查询缓存外,v18 还对插件内部进行了全面重构:所有 GraphQL 请求速度大幅提升,内存使用量显著减少。
性能提升是全局性的——适用于所有查询、所有指令、所有 persisted query,在大型 schema、长查询以及每页运行大量 GraphQL 请求的站点(例如:Headless WordPress、内部 API)上效果尤为明显。
之前遇到 PHP 内存限制或响应缓慢的大型站点将会感受到明显的差异,无需任何配置更改——只需更新插件即可。
🔒 安全默认值强化
三个方面的默认设置得到了加固,使插件开箱即更安全。
Email Sender — 所需 capability
_sendEmail mutation 现在可以限制为仅拥有特定 WordPress capability 的用户才能使用,在 Plugin Configuration > Email Sender 中进行配置。

默认值为 manage_options,防止订阅者使用该 mutation 向任意收件人发送垃圾邮件。选择 (any logged-in user) 可禁用此检查。
HTTP Client — 访问内部 URL 所需的 capability
某些 URL 会解析到内部地址(127.0.0.1、链路本地范围、云元数据端点等),访问这些地址可能会暴露内部服务。Plugin Configuration > HTTP Client 下的新设置将访问这些地址的权限限制为拥有特定 WordPress capability 的用户。

默认值为 manage_options,防止非管理员用户通过 HTTP Client 字段访问内部服务。选择 (any logged-in user) 可禁用此检查。
Environment Variables — 非管理员用户的拒绝列表
_env 字段已要求明确的 allow-list,且该列表默认为空。v18 为非管理员用户新增了额外的安全保障:即使这些名称已在配置的 allow-list 中,访问也会被拒绝。
始终拒绝(WordPress 密钥):
AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, NONCE_SALT, DB_NAME, DB_USER, DB_PASSWORD, DB_HOST, DB_CHARSET, DB_COLLATE.
同样拒绝——名称中包含以下内容的变量:PASSWORD, PASSWD, SECRET, PRIVATE_KEY, API_KEY, APIKEY, ACCESS_KEY, ACCESS_TOKEN, AUTH_TOKEN, BEARER, CREDENTIAL, SALT.
管理员用户仍拥有完整访问权限。
➡️ 完整列表请参阅文档的安全部分。
🌐 翻译:新增 Gemini 提供商
@strTranslate 指令现在支持将 Google Gemini 作为翻译提供商,与 ChatGPT、Claude、DeepL、DeepSeek、Google Translate、Mistral、OpenRouter 和自托管 LLM 并列。
将任意 String 字段翻译为所需语言:
{
posts {
title @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
content @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
}
}以下 Gemini 模型受到支持:
- Gemini 2.0 Flash (
gemini-2.0-flash) - Gemini 2.0 Flash-Lite (
gemini-2.0-flash-lite) - Gemini 2.5 Flash (
gemini-2.5-flash) - Gemini 2.5 Flash-Lite (
gemini-2.5-flash-lite) - Gemini 2.5 Pro (
gemini-2.5-pro) - Gemini 3.1 Flash-Lite (
gemini-3.1-flash-lite)
配置您的 Google API 密钥(通过 Settings、wp-config.php 或环境变量),选择模型,即可开始翻译。
➡️ 请参阅 Gemini 翻译参考文档。
⏱️ 翻译:Request 和 Connection 超时
通过第三方提供商翻译长文档可能耗时较长,若上游服务挂起,将会占用 PHP 工作进程直到 PHP 强制终止请求——导致通用 HTTP 502/504 错误或空白的「Maximum execution time exceeded」页面。
v18 在 Plugin Configuration > Translation 下新增了两个超时设置:
- Request timeout: 等待翻译提供商返回完整响应的最长时间(秒)。
- Connection timeout: 建立连接时等待的最长时间(秒)。

请将两个值设置为略低于服务器的 max_execution_time,以便翻译停滞时以可控错误的形式记录到日志中,而非触发通用服务器超时。如果您的翻译频繁超时,请同步提高_这两个_值以及服务器的 max_execution_time。
🐛 错误修复与安全补丁
除上述新功能外,v18.0 还包含多项错误修复以及若干安全漏洞补丁。我们强烈建议尽快更新至 v18。
升级
本次发布正在通过 WordPress 插件目录和客户控制台推出。请在 WordPress 管理后台(插件 → 更新)中进行更新,或从您的账户下载最新版本。
完整变更列表请参阅 changelog。
享受 v18! 🎉