WordPress12/09/2026Redação de Tecnologia e Desenvolvimento7 min de lecturaActualizado el 16/09/2026

Secrets API en WordPress 7.2: cómo guardar claves y tokens — y qué todavía queda fuera

La propuesta introduce almacenamiento cifrado de credenciales con acceso por código y WP-CLI. Revisa qué está definido, cómo preparar plugins y qué aún no ha llegado a Core.

Ilustração tecnológica com painel do WordPress 7.2, interface da Secrets API, cofre digital, terminal WP-CLI e janela de código.

A 12 de septiembre de 2026, la Secrets API todavía no es una API confirmada en el núcleo de WordPress 7.2: se encuentra como feature plugin antes de su integración en Core. La propuesta publicada en Make WordPress Core define una interfaz de almacenamiento cifrado para claves de API, tokens y otras credenciales, con soporte de WP-CLI y puntos de extensión para proveedores externos. El plan es decidir antes de la Beta 1 de WordPress 7.2 si la API entra en esa versión o se aplaza a 7.3. Los desarrolladores ya pueden probar el diseño, pero no deben considerar garantizada la presencia de esas funciones en Core.

Primero: la API aún no está confirmada en el Core de WordPress 7.2

La propuesta se publicó el 25 de agosto de 2026 y fue seguida por un feature plugin para que contribuidores y autores de plugins puedan probar el comportamiento antes del parche de Core. El 10 de septiembre, el resumen del Dev Chat señaló que ya existía una implementación inicial funcional y pidió comentarios, especialmente sobre la interoperabilidad con proveedores externos.

El repositorio del proyecto describe el estado actual como “pre-core-merge”: la superficie pública del feature plugin está definida, pero el código todavía no se ha incorporado a WordPress. El calendario de 7.2 sitúa la Beta 1 entre el 20 y el 22 de octubre de 2026; la propia propuesta trata esa ventana como el límite práctico para integrar la API, con la opción explícita de aplazarla a 7.3 si no está lista.

Fuentes principales: la propuesta de la Secrets API, el feature plugin en GitHub, el resumen del Dev Chat del 9 de septiembre y el calendario de WordPress 7.2.

Qué problema intenta resolver la Secrets API

Actualmente, Core no ofrece una abstracción de primera clase para credenciales. Los plugins que necesitan una clave de API o un token suelen recurrir a la Options API o a mecanismos propios. Eso puede dejar valores sensibles mezclados con datos comunes del sitio y copiados en volcados de base de datos, copias de seguridad, clones de staging y otros flujos operativos.

La propuesta crea un camino común para que un plugin diga “esto es un secreto” y delegue almacenamiento, cifrado, rotación e integración con infraestructura a WordPress o al proveedor de hosting. El beneficio buscado no es impedir que cualquier código PHP pueda leer el valor; es reducir la exposición de credenciales en reposo y crear un punto único para operaciones y auditoría.

Cómo funciona el modelo de almacenamiento propuesto

  • Cifrado siempre activo: no hay modo de texto plano. La implementación predeterminada usa cifrado en reposo con una jerarquía de claves.
  • Almacenamiento predeterminado reemplazable: WordPress puede mantener registros cifrados usando la infraestructura de opciones, mientras que los hosts pueden sustituir el proveedor, el keyring o el store por integraciones con KMS, HSM o servicios de secretos.
  • Drop-in dedicado: un archivo wp-content/secrets.php es el punto propuesto para instalar implementaciones alternativas.
  • Dos posiciones de valor: CURRENT y PREVIOUS permiten rotación sin conservar un historial ilimitado.
  • Fallo cerrado: si el backend de secretos o el keyring no está disponible, la operación devuelve un error; el diseño rechaza un fallback silencioso a almacenamiento local menos seguro.
  • Sin exportación en texto plano: el diseño no ofrece un mecanismo para exportar valores secretos; migraciones y entornos de staging deben volver a recibir las credenciales.

El feature plugin actual también separa tres niveles de extensión: WP_Secrets_Provider para plataformas en las que un sistema externo es la fuente de verdad, WP_Secrets_Keyring para sustituir la protección de la clave raíz y WP_Secrets_Store para cambiar dónde se guardan los registros.

Cómo accederían los plugins a un secreto desde código

La API propuesta es deliberadamente pequeña. El diseño expone wp_set_secret() para escribir, wp_get_secret() para leer, wp_delete_secret() para borrar y wp_import_option_as_secret() para mover un valor conocido desde la Options API.

La lectura está diseñada para distinguir tres estados: un objeto WP_Secret cuando el valor existe y puede recuperarse, null cuando no existe y WP_Error cuando existe pero no puede leerse, por ejemplo por un problema de clave o de backend. Esta separación evita que un plugin confunda “credencial ausente” con “credencial dañada” y reinicie incorrectamente un flujo de conexión.

Obtener la cadena en bruto exige una llamada explícita a WP_Secret::reveal(). El objeto también ofrece fingerprint(), útil para comparar o auditar un secreto sin exponer su contenido. La convención de nombres es plugin-slug/secret-name, pero el namespace es organizativo: la documentación actual deja claro que no crea un aislamiento fuerte entre plugins que se ejecutan en el mismo proceso PHP.

Dónde entra WP-CLI

WP-CLI está dentro del alcance de la propuesta para 7.2 porque sirve como primer consumidor oficial y ayuda a comprobar si la API es suficiente para tareas operativas reales. También existe una razón de seguridad operativa: las credenciales pasadas directamente como argumentos del shell pueden terminar en el historial o en la lista de procesos. Una integración nativa con la Secrets API puede ofrecer flujos de lectura y escritura que eviten ese patrón.

Sin embargo, la propuesta de agosto todavía pedía comentarios sobre qué comandos deberían existir y en qué orden. Por eso, autores de documentación y responsables de automatizaciones no deberían fijar los nombres de comandos del feature plugin como si fueran una interfaz definitiva de WordPress 7.2 hasta que exista integración en Core y documentación oficial.

Cómo migrar claves que hoy están en wp_options

La propuesta evita deliberadamente una migración automática. Core no puede determinar con seguridad qué opciones son credenciales, y una búsqueda heurística podría mover o romper datos que en realidad no son secretos.

El camino propuesto es explícito: cada plugin conoce el nombre de su opción antigua y decide, en su propia rutina de actualización, cuándo importarla con wp_import_option_as_secret(). Después de la importación, la credencial debe considerarse candidata a rotación. Cifrar un token que ya pasó por copias de seguridad, réplicas y cachés no borra las copias históricas; cambiar el valor en el servicio externo es lo que reduce ese riesgo residual.

Qué queda fuera de la primera versión — y qué es un no objetivo

ElementoEstado en el diseño actualImplicación práctica
Pantalla de administración para gestionar secretosAplazada; la propuesta apunta a 7.37.2 prioriza la semántica de almacenamiento, acceso y extensibilidad, no una UI completa.
Aislamiento fuerte entre pluginsFuera de alcanceEl código que se ejecuta dentro del mismo WordPress puede, en principio, acceder a secretos; el namespace no es una frontera de privilegio.
Migración automática de opciones existentesNo previstaCada plugin debe migrar solo las credenciales que conoce y controlar su propio ciclo de actualización.
Exportación de valores en texto planoDeliberadamente ausenteLos nuevos entornos deben volver a recibir la credencial en lugar de transportar un volcado de secretos.
Protección contra ejecución arbitraria de código en el proceso PHPFuera del modelo de amenazaLa API refuerza el almacenamiento y reduce la exposición accidental, pero no vence a un atacante que ya ejecuta código como WordPress.
Interfaz final de comandos de WP-CLITodavía sujeta al proceso de integraciónPrueba el feature plugin, pero espera la integración y documentación de Core antes de depender de una sintaxis definitiva.

Cómo preparar plugins e integraciones ahora

  1. Haz un inventario de credenciales: enumera claves de API, tokens, contraseñas de integración y las opciones donde viven actualmente.
  2. Encapsula lectura y escritura en una capa propia: evita dispersar get_option() y update_option() por todo el plugin. Un adaptador hace menos invasivo un futuro cambio a la Secrets API.
  3. Usa claves estables y con namespace: planifica nombres como mi-plugin/token-servicio, sin tratar el namespace como autorización.
  4. Modela los tres estados de lectura: distingue ausente, disponible y error de recuperación.
  5. Planifica importación y rotación por separado: importar retira el texto plano del camino normal; rotar reduce el riesgo de copias históricas.
  6. Revisa logs y herramientas operativas: evita registrar valores, colocar tokens en URL o pasarlos como argumentos de línea de comandos.
  7. Prueba en un entorno desechable: el feature plugin existe para validar la API antes del merge. Úsalo para detectar incompatibilidades, incluso con proveedores de hosting.
  8. Mantén fallbacks de compatibilidad solo mientras sean necesarios: si tu plugin soporta versiones anteriores de WordPress, encapsula el fallback y elimínalo cuando tu matriz de soporte lo permita.

Calendario y decisión práctica para el ciclo 7.2

WordPress 7.2 se encuentra actualmente en alpha. La Beta 1 está prevista para el 20–22 de octubre y el lanzamiento final para el 8–10 de diciembre de 2026. La propuesta de la Secrets API establece que, antes de la Beta 1, el trabajo debe integrarse en Core o aplazarse explícitamente a 7.3, en lugar de entrar con prisas.

Para quienes mantienen plugins, la acción útil ahora es preparar arquitectura y pruebas, no asumir disponibilidad. El feature plugin ofrece un objetivo concreto para experimentar y la propuesta ya fija principios importantes — cifrado obligatorio, importación explícita, ausencia de exportación y falta de aislamiento por plugin —, pero la decisión que convierte esto en una API oficial de WordPress aún depende del proceso de merge de Core.

Temas de este artículochaves de APIcredenciaisplugins WordPressSecrets APIsegurança WordPresstokensWordPress 7.2WP-CLI