🚀 Lanzado Gato GraphQL v18.0: Caching de consultas parseadas, seguridad reforzada y nuevo proveedor de traducción Gemini
¡Ya está aquí Gato GraphQL v18.0! 🎉
Esta release es notablemente más rápida y usa considerablemente menos memoria, te permite cachear las consultas GraphQL parseadas en disco para evitar el parseo y compilación repetidos, refuerza las comprobaciones de capability por defecto para los campos Email Sender, HTTP Client y Environment Variable, incluye varios bug fixes y algunos parches de seguridad, y añade un nuevo proveedor de traducción Gemini más timeouts configurables de Request y Connection para las traducciones.
Sigue leyendo para conocer las novedades.
⚡ Cachear consultas GraphQL parseadas en disco
Cada petición debe parsear la consulta GraphQL, validarla contra el esquema, y construir el plan de ejecución. v18 ahora puede persistir la consulta preparada en disco y recargarla en ejecuciones posteriores — saltándose por completo el trabajo de parseo y compilación repetidos.
Habilítalo en la página de Settings, en Server Configuration > Caching > Cache parsed GraphQL queries?:

Esto cachea la preparación de la consulta (parseo y compilación), no los datos de respuesta. Para el HTTP caching de las respuestas, mira Añadiendo caché HTTP.
Los ficheros van en el directorio de caché del plugin. Si la carpeta del plugin no es escribible, puedes apuntar la caché a otro lugar — mira Sobrescribir la carpeta de caché.
➡️ Todos los detalles en Cachear las consultas GraphQL ya parseadas.
⚡ Más rápido y ligero — en todos los niveles
Más allá de la caché de consultas parseadas, los internals del plugin se han revisado a fondo en v18: cada petición GraphQL es notablemente más rápida, y consume considerablemente menos memoria.
Las ganancias son globales — se aplican a cada consulta, cada directiva, cada persisted query — y son especialmente visibles en esquemas grandes, consultas largas, y sitios que ejecutan muchas peticiones GraphQL por página (ej. headless WordPress, APIs internas).
Los sitios grandes que antes topaban con los límites de memoria de PHP o veían tiempos de respuesta lentos deberían notar una diferencia real, sin cambios de configuración necesarios — solo actualiza el plugin.
🔒 Valores por defecto de seguridad reforzados
Tres áreas han recibido valores por defecto más estrictos para que el plugin sea más seguro de fábrica.
Email Sender — Capability requerida
La mutation _sendEmail ahora puede restringirse a usuarios con una capability específica de WordPress, configurada en Plugin Configuration > Email Sender.

Por defecto manage_options para que los suscriptores no puedan usar la mutation para hacer spam a destinatarios arbitrarios. Selecciona (any logged-in user) para deshabilitar la comprobación.
HTTP Client — Capability requerida para acceder a URLs internas
Algunas URLs resuelven a direcciones internas (127.0.0.1, rangos link-local, endpoints de cloud-metadata, etc.) que pueden exponer servicios internos si se alcanzan. Un nuevo ajuste en Plugin Configuration > HTTP Client restringe apuntar a esas direcciones a usuarios con una capability específica de WordPress.

Por defecto manage_options para que los usuarios no-admin no puedan alcanzar servicios internos a través de los campos HTTP Client. Selecciona (any logged-in user) para deshabilitar la comprobación.
Environment Variables — denylist para usuarios no admin
El campo _env ya requería una allow-list explícita, y esa lista está vacía por defecto. v18 añade una red de seguridad adicional para usuarios no admin: aunque estos nombres estén en la allow-list de la configuración, se les deniega el acceso.
Siempre denegados (secrets de 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.
También denegados — cualquier variable cuyo nombre contenga: PASSWORD, PASSWD, SECRET, PRIVATE_KEY, API_KEY, APIKEY, ACCESS_KEY, ACCESS_TOKEN, AUTH_TOKEN, BEARER, CREDENTIAL, SALT.
Los usuarios admin siguen teniendo acceso completo.
➡️ Mira la sección Security de los docs para la lista completa.
🌐 Traducción: nuevo proveedor Gemini
La directiva @strTranslate ahora soporta Google Gemini como proveedor de traducción, junto a ChatGPT, Claude, DeepL, DeepSeek, Google Translate, Mistral, OpenRouter y LLMs auto-alojados.
Traduce cualquier campo String al idioma deseado:
{
posts {
title @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
content @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
}
}Se soportan los siguientes modelos 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)
Configura tu API key de Google (vía Settings, wp-config.php, o variable de entorno), elige un modelo, y estás listo para traducir.
➡️ Mira la documentación de referencia de Gemini Translation.
⏱️ Traducción: timeouts de Request y Connection
Traducir un documento largo a través de un proveedor de terceros puede ser lento, y un upstream colgado de otro modo retendría un worker PHP hasta que el propio PHP mate la petición — produciendo un HTTP 502 / 504 genérico o una página en blanco "Maximum execution time exceeded".
v18 expone dos ajustes de timeout en Plugin Configuration > Translation:
- Request timeout: tiempo máximo (en segundos) a esperar por la respuesta completa del proveedor de traducción.
- Connection timeout: tiempo máximo (en segundos) a esperar al establecer la conexión.

Mantén ambos valores ligeramente por debajo del max_execution_time de tu servidor para que una traducción atascada falle limpiamente con un error controlado en los logs en lugar de disparar el timeout genérico del servidor. Si tus traducciones expiran regularmente, aumenta ambos estos valores y el max_execution_time de tu servidor en conjunto.
🐛 Bug fixes y parches de seguridad
Además de las nuevas características anteriores, v18.0 también incluye varios bug fixes y parchea algunas vulnerabilidades de seguridad. Recomendamos encarecidamente actualizar a v18 lo antes posible.
Actualización
La release se está distribuyendo ahora a través del directorio de plugins de WordPress y tu dashboard de cliente. Actualiza desde tu admin de WordPress (Plugins → Updates), o descarga la última versión desde tu cuenta.
Mira el changelog para la lista completa de cambios.
¡Disfruta v18! 🎉