Codex · WordPress · PHP · WooCommerce

Codex para WordPress: cómo desarrollar plugins, depurar errores y revisar seguridad

Aprende a utilizar OpenAI Codex para desarrollar WordPress: analizar plugins y themes, trabajar con PHP, MySQL, AJAX, REST API, WooCommerce y JavaScript, encontrar bugs, revisar seguridad, ejecutar tests y organizar workflows avanzados con AGENTS.md, Skills, Subagents, Worktrees y Automations.

Plugins PHP MySQL WooCommerce
Respuesta rápida

¿Se puede usar Codex para programar WordPress?

Sí. Codex puede trabajar directamente sobre el código de un proyecto WordPress para explorar su arquitectura, editar plugins y themes, investigar errores, crear funcionalidades, revisar consultas SQL, analizar handlers AJAX y endpoints REST, ejecutar herramientas de verificación y revisar cambios con Git. Su mayor ventaja aparece cuando le das acceso al repositorio, reglas persistentes y criterios claros de aceptación en lugar de utilizarlo únicamente como generador de fragmentos PHP.

Casos de uso

Qué puede hacer Codex en un proyecto WordPress

WP

Plugins

Crear, analizar y mantener plugins propios.

BUG

Debugging

Rastrear errores PHP, JavaScript y flujos de datos.

DB

MySQL

Revisar consultas, tablas y persistencia.

API

REST + AJAX

Construir y auditar endpoints y requests.

WC

WooCommerce

Trabajar con hooks, pedidos, productos y cuentas.

SEC

Seguridad

Revisar permisos, nonces, input y output.

Publicidad
Workflow recomendado

No empieces pidiendo código: empieza entendiendo el proyecto

01 · EXPLORE

Explora

Plugin, hooks, tablas y flujos.

02 · PLAN

Planifica

Define archivos, cambios y riesgos.

03 · CODE

Implementa

Aplica el cambio mínimo necesario.

04 · VERIFY

Verifica

Tests, sintaxis, seguridad y diff.

Publicidad
Primer paso

Abre el proyecto WordPress correcto

cd wp-content/plugins/mi-plugin

git status

codex

También puedes iniciar Codex directamente sobre otra ruta:

codex --cd /ruta/wordpress/wp-content/plugins/mi-plugin
Trabaja desde la raíz lógica del proyecto.

Si estás desarrollando un plugin independiente, normalmente conviene abrir la carpeta del plugin. Si el cambio afecta múltiples plugins, themes o configuración del sitio, puede ser mejor trabajar desde una raíz superior.

Prompt 1

Pide primero un mapa completo del plugin

Analiza este plugin WordPress.

No modifiques archivos todavía.

Explícame:

1. propósito del plugin
2. archivo bootstrap
3. clases principales
4. hooks actions y filters
5. shortcodes
6. endpoints REST
7. handlers AJAX
8. tablas personalizadas
9. opciones utilizadas
10. cron jobs
11. JavaScript y CSS
12. integraciones externas
13. dependencias
14. flujo de datos
15. zonas sensibles de seguridad

Indica los archivos
y funciones exactas
para cada punto.
Este paso evita modificaciones a ciegas.

Antes de implementar, Codex debería localizar dónde vive realmente la funcionalidad que quieres cambiar.

Contexto persistente

Crea un AGENTS.md para tu proyecto WordPress

Si trabajas repetidamente sobre el mismo plugin, no deberías explicar las mismas reglas en cada prompt.

# WordPress project instructions

## Stack

- WordPress
- PHP
- MySQL
- JavaScript
- AJAX
- REST API
- WooCommerce where present

## General rules

- Do not modify WordPress core.
- Prefer WordPress APIs over custom replacements.
- Preserve existing public APIs.
- Avoid unrelated refactors.
- Keep changes narrowly scoped.
- Follow the existing plugin architecture.

## Security

- Validate input when a strict rule exists.
- Sanitize untrusted input.
- Escape output according to context.
- Check user capabilities for privileged actions.
- Use nonces for CSRF protection where appropriate.
- Never treat a nonce as authorization.
- Use prepared SQL for dynamic database queries.
- Review REST permission callbacks.
- Never expose credentials or secrets.

## Database

- Preserve existing table prefixes.
- Do not delete production data.
- Explain migrations before implementing them.
- Avoid schema changes unless required.

## Verification

Before finishing:

1. run PHP syntax checks on changed PHP files
2. run project tests when available
3. run linting when configured
4. inspect git diff
5. look for debug code
6. report files changed
7. report tests executed
8. report remaining risks
Prompt 2

Describe una funcionalidad como si fuera un GitHub Issue

Objetivo:

Añadir un campo "Teléfono"
al formulario de registro
del plugin.

Comportamiento actual:

El formulario guarda:
- nombre
- email
- categoría

Comportamiento esperado:

- mostrar teléfono
- validar formato
- sanitizar antes de guardar
- guardar en la estructura existente
- mostrarlo en el panel administrativo
- mantener compatibilidad con registros antiguos

Restricciones:

- no modificar WordPress core
- no crear una tabla nueva
- no cambiar URLs públicas
- no romper usuarios existentes
- seguir la arquitectura actual

Antes de editar:

1. identifica los archivos afectados
2. explica el flujo actual
3. propón un plan
4. indica riesgos

Después implementa
el cambio mínimo.

Finalmente ejecuta
las verificaciones disponibles
y revisa el diff.
Cambios grandes

Pide un plan antes de tocar código

No modifiques archivos todavía.

Crea un plan de implementación.

Para cada paso indica:

- archivo
- función o clase
- cambio necesario
- motivo
- dependencia
- riesgo
- forma de verificarlo

Busca reutilizar
la arquitectura existente.

Evita crear
abstracciones nuevas
si el proyecto ya tiene
una solución equivalente.
Especialmente útil para plugins antiguos.

WordPress tiene proyectos que mezclan código procedural, clases, AJAX, shortcodes y templates. Un plan previo ayuda a evitar que Codex cree una arquitectura paralela innecesaria.

Publicidad
Seguridad

Codex puede revisar seguridad WordPress de forma sistemática

IN

Validación y sanitización de entrada.

OUT

Escape de output.

NON

Verificación de nonces.

CAP

Capabilities y autorización.

SQL

Consultas preparadas.

REST

permission_callback de endpoints.

FILE

Uploads y filesystem.

KEY

Secrets y credenciales.

Prompt 3

Auditoría de seguridad de un plugin WordPress

Haz una auditoría
de seguridad de este plugin WordPress.

No modifiques archivos.

Revisa especialmente:

1. $_GET
2. $_POST
3. $_REQUEST
4. $_FILES
5. AJAX handlers
6. REST routes
7. admin-post handlers
8. formularios
9. SQL dinámico
10. uploads
11. operaciones de filesystem
12. opciones y metadata
13. autenticación
14. autorización
15. nonces
16. credenciales
17. output HTML

Para cada hallazgo incluye:

- severidad
- archivo
- línea
- código afectado
- vulnerabilidad
- escenario realista
- impacto
- corrección recomendada

No reportes
problemas puramente teóricos
sin una ruta plausible
de explotación.
Nonces

Nonce no significa autorización

Nonce

Intención / CSRF

Ayuda a verificar que una petición proviene del flujo esperado.

Capability

Autorización

Determina si ese usuario puede realizar realmente la acción.

if ( ! current_user_can( 'manage_options' ) ) {
    wp_send_json_error(
        array( 'message' => 'Unauthorized' ),
        403
    );
}

check_ajax_referer(
    'my_plugin_action',
    'nonce'
);
Busca ambas protecciones cuando correspondan.

Un nonce válido no significa por sí solo que el usuario tenga permiso para ejecutar una acción privilegiada.

Datos

Validar, sanitizar y escapar no son lo mismo

Etapa Objetivo Ejemplos
Validar Comprobar que el dato cumple la regla esperada Email válido, ID entero, valor permitido
Sanitizar Limpiar una entrada antes de utilizarla sanitize_text_field()
Escapar Preparar el dato para el contexto de salida esc_html(), esc_attr(), esc_url()
$title = isset( $_POST['title'] )
    ? sanitize_text_field(
        wp_unslash( $_POST['title'] )
    )
    : '';

echo esc_html( $title );
MySQL

Pide a Codex que detecte SQL construido manualmente

Busca en este plugin:

- consultas $wpdb
- SQL concatenado
- variables dentro de queries
- LIKE dinámicos
- nombres de tablas dinámicos

Comprueba si cada consulta
maneja correctamente
los valores dinámicos.

Prioriza el uso
de $wpdb->prepare()
cuando corresponda.

No modifiques nada todavía.

Devuelve:
archivo,
línea,
query
y riesgo.

Ejemplo

$row = $wpdb->get_row(
    $wpdb->prepare(
        "SELECT * FROM {$table}
         WHERE id = %d",
        $id
    )
);
AJAX

Revisar handlers AJAX con Codex

Encuentra todos
los handlers AJAX
del plugin.

Para cada uno determina:

- hook registrado
- usuarios autenticados o públicos
- parámetros recibidos
- nonce
- capability check
- validación
- sanitización
- consultas SQL
- cambios de estado
- estructura de respuesta

Marca específicamente
cualquier handler
que permita escritura
sin autorización suficiente.
No revises solo el JavaScript.

La seguridad real del flujo AJAX está en el handler PHP que procesa la solicitud.

REST API

Audita permission_callback en cada endpoint

register_rest_route(
    'my-plugin/v1',
    '/settings',
    array(
        'methods'  => 'POST',
        'callback' => 'my_plugin_save_settings',

        'permission_callback' => function () {
            return current_user_can(
                'manage_options'
            );
        },
    )
);
Un endpoint público también debe declararlo explícitamente.

Si realmente debe ser público, la decisión debe ser intencional y coherente con los datos y acciones que expone.

Publicidad
Debugging

No le pidas a Codex que “pruebe cosas” al azar

Investiga este bug.

Síntoma:

Al guardar el formulario,
la pantalla muestra éxito
pero el registro
no aparece en la base de datos.

No modifiques código todavía.

Sigue este proceso:

1. reproduce el flujo
2. identifica el entry point
3. sigue los datos
   desde frontend hasta DB
4. revisa request y response
5. revisa logs
6. localiza el punto
   donde se pierde el dato
7. determina la causa raíz
8. explica por qué ocurre

Solo después
propón la corrección mínima.
Diagnóstico antes de parche.

Esto evita que Codex cambie código cercano al síntoma sin demostrar que ese código es la causa del problema.

Evidencia

Haz que Codex base el diagnóstico en datos reales

PHP

Errores y warnings.

NET

Request y response AJAX/REST.

SQL

Consulta y resultado.

JS

Errores de consola.

TEST

Test que reproduce el fallo.

DIFF

Cambios que introdujeron la regresión.

Arquitectura

Pide a Codex que respete la estructura existente

Antes de crear archivos nuevos:

1. busca cómo resuelve
   este proyecto
   funcionalidades similares

2. reutiliza:
   - clases existentes
   - helpers
   - repositories
   - services
   - hooks
   - templates
   - convenciones

3. no introduzcas
   un framework paralelo

4. explica
   cualquier nueva abstracción
   antes de crearla
Estándares

WordPress Coding Standards como criterio de revisión

Puedes incluir dentro de AGENTS.md o de una Skill:

When editing WordPress code:

- follow the project's existing style
- follow WordPress security best practices
- preserve translatability
- preserve backwards compatibility
- use WordPress APIs where appropriate
- maintain accessibility requirements
- do not change third-party vendor code
- do not perform style-only rewrites
  unless requested
PHPCS

Usa las herramientas del proyecto, no reglas inventadas

Si el proyecto ya tiene WordPress Coding Standards configurado, Codex puede ejecutar su comando de linting.

# Ejemplos cuando el proyecto
# ya tiene estas herramientas configuradas

vendor/bin/phpcs

vendor/bin/phpunit

php -l archivo.php
Primero inspecciona composer.json y la configuración del repositorio.

No asumas que todos los plugins WordPress utilizan exactamente el mismo comando de test o linting.

WooCommerce

Codex también puede trabajar sobre extensiones WooCommerce

Analiza la integración
WooCommerce de este plugin.

Mapea:

- hooks utilizados
- productos
- carrito
- checkout
- pedidos
- Mi Cuenta
- endpoints
- metadata
- estados personalizados
- emails
- cron jobs

Después identifica:

- dependencias de WooCommerce
- APIs internas utilizadas
- posibles incompatibilidades
- acceso directo innecesario
  a estructuras internas
- puntos sensibles
  de autorización

No modifiques código.
Evita pedir “hazlo con WooCommerce” sin contexto.

Primero haz que Codex identifique qué APIs, hooks y convenciones ya utiliza el plugin.

Base de datos

Trata las migraciones como cambios de alto riesgo

Necesitamos añadir
una columna a la tabla
del plugin.

No implementes todavía.

Analiza:

1. cómo se crea actualmente la tabla
2. cómo se guarda la versión del esquema
3. cómo se ejecutan upgrades
4. instalaciones nuevas
5. instalaciones existentes
6. rollback posible
7. datos antiguos
8. índices
9. compatibilidad
10. riesgo de pérdida de datos

Propón primero
un plan de migración
seguro e idempotente.
Ciclo de vida

Revisa activación, desactivación y uninstall por separado

Evento Uso típico
Activación Inicialización, defaults, estructuras necesarias
Desactivación Limpiar estado temporal o tareas que no deben seguir activas
Uninstall Eliminar datos permanentes solo cuando realmente corresponde
No confundas desactivar con eliminar.

Un plugin puede desactivarse temporalmente. La eliminación definitiva es otro evento y merece decisiones explícitas sobre datos.

Frontend

Codex puede modificar PHP, JavaScript y CSS dentro del mismo flujo

Corrige este formulario
sin cambiar su diseño.

Problema:

Después de enviar por AJAX,
el mensaje de éxito
aparece correctamente,
pero el formulario
puede enviarse dos veces.

Requisitos:

- localizar causa raíz
- bloquear doble submit
- preservar accesibilidad
- mantener mensajes existentes
- no introducir jQuery
  si el proyecto no lo usa
- no modificar estilos
  no relacionados

Verifica
el flujo completo
frontend → PHP → respuesta.
Accesibilidad

No dejes que una corrección visual rompa accesibilidad

KEY

Navegación con teclado.

LAB

Labels asociados a inputs.

FOC

Estados de foco visibles.

ERR

Mensajes de error comprensibles.

SEM

HTML semántico.

ARIA

ARIA solo cuando aporta valor.

Publicidad
Skills

Crea workflows WordPress reutilizables

.agents/
└── skills/
    ├── wordpress-security-review/
    │   └── SKILL.md
    │
    ├── wordpress-debug/
    │   └── SKILL.md
    │
    ├── database-migration-review/
    │   └── SKILL.md
    │
    └── wordpress-release/
        └── SKILL.md
Skill WordPress

Ejemplo reutilizable para seguridad

---
name: wordpress-security-review
description: Audit WordPress plugins and themes for security problems involving input, output, authorization, AJAX, REST API, SQL, uploads and secrets.
---

# WordPress Security Review

Check:

1. validation
2. sanitization
3. escaping
4. nonces
5. capabilities
6. SQL
7. AJAX handlers
8. REST permission callbacks
9. file operations
10. secrets

Do not modify code.

Return findings ordered by severity.

For every finding include:

- file
- line
- vulnerability
- realistic impact
- recommended correction
Worktrees

Desarrolla cambios WordPress sin ensuciar tu checkout principal

Checkout

Trabajo normal

Edición que estás haciendo manualmente.

Worktree

Trabajo Codex

Feature, bugfix o experimento aislado.

Esto resulta especialmente útil para:

BUG

Probar una corrección.

REF

Refactor grande.

PHP

Compatibilidad PHP.

SEC

Aplicar correcciones de seguridad.

Subagents

Divide una revisión WordPress entre especialistas

Analiza este plugin
con cuatro subagentes.

architecture:
mapea clases,
hooks,
requests
y persistencia.

security:
revisa nonces,
capabilities,
input,
output,
SQL
y REST.

compatibility:
revisa PHP,
WordPress
y WooCommerce.

testing:
identifica
flujos críticos
sin cobertura.

Trabajen en paralelo.

No modifiquen archivos.

Después consolida
los resultados,
elimina duplicados
y ordena
los hallazgos
por severidad.
MCP

Conecta Codex con documentación cuando necesites verificar APIs

Antes de utilizar
una API de WordPress
o una integración externa:

1. verifica la documentación actual
2. confirma la firma
3. confirma parámetros
4. confirma comportamiento
5. identifica deprecaciones
6. solo entonces implementa
Automations

Automatiza revisiones recurrentes del plugin

$wordpress-security-review

Revisa únicamente
los cambios
desde la ejecución anterior.

Comprueba:

- PHP syntax
- security
- AJAX
- REST
- database
- debug code
- deprecated patterns

No modifiques archivos.

Si no existen
hallazgos nuevos,
indícalo claramente.
Antes de terminar

Haz una revisión independiente del cambio

/review

También puedes usar un prompt focalizado:

Revisa el diff actual.

Busca únicamente:

- bugs reales
- regresiones
- autorización insuficiente
- SQL inseguro
- output sin escape
- AJAX o REST inseguros
- pérdida de datos
- problemas de compatibilidad
- tests importantes faltantes

No reportes
preferencias subjetivas
de estilo.

Ordena
por severidad.
Checklist

Qué pedir a Codex antes de considerar terminado un cambio

01

PHP syntax correcto.

02

Tests relevantes ejecutados.

03

Linting del proyecto cuando exista.

04

Inputs revisados.

05

Outputs escapados.

06

Capabilities revisadas.

07

Nonces donde correspondan.

08

SQL dinámico revisado.

09

REST y AJAX revisados.

10

git diff revisado.

11

Sin var_dump, print_r o debug accidental.

12

Riesgos restantes documentados.

Release

Prompt para preparar una nueva versión del plugin

Prepara este plugin
para una nueva release.

No publiques nada.

Comprueba:

1. git status
2. versión actual
3. archivos de versión
4. changelog
5. PHP syntax
6. tests
7. linting
8. debug code
9. dependencias
10. assets generados
11. archivos no deseados
12. compatibilidad
13. seguridad del diff

Después entrega:

- blockers
- warnings
- cambios incluidos
- comandos ejecutados
- estado final

No hagas push,
tag,
deploy
ni publicación.
Errores frecuentes

Cómo no usar Codex con WordPress

Error Mejor enfoque
“Créame un plugin completo” Divide requisitos y construye por features
Editar sin explorar Mapea primero arquitectura y flujo
Dar acceso total siempre Usar permisos mínimos
Confiar en un nonce como permiso Revisar también capabilities
Concatenar SQL Usar APIs y preparación apropiada
Refactorizar todo al corregir un bug Aplicar primero el cambio mínimo
No ejecutar tests Exigir evidencia de verificación
Modificar producción directamente Git, staging y worktrees
Prompt maestro

Plantilla para trabajar con WordPress y Codex

Objetivo:

[describe el resultado]


Contexto:

[explica el problema]


Comportamiento actual:

[qué ocurre ahora]


Comportamiento esperado:

[qué debería ocurrir]


Archivos o módulos relevantes:

[si los conoces]


Restricciones:

- no modificar WordPress core
- no romper APIs públicas
- mantener compatibilidad existente
- reutilizar arquitectura actual
- evitar refactors no relacionados
- aplicar permisos mínimos
- respetar prácticas de seguridad WordPress


Antes de editar:

1. explora el flujo actual
2. identifica archivos y funciones
3. explica la causa o arquitectura
4. crea un plan
5. enumera riesgos


Implementación:

- realiza el cambio mínimo
- conserva estilo existente
- añade o actualiza tests
  cuando exista infraestructura


Seguridad:

revisa:

- validation
- sanitization
- escaping
- nonces
- capabilities
- SQL
- AJAX
- REST
- filesystem
- secrets


Verificación:

1. PHP syntax
2. tests
3. lint
4. flujo afectado
5. git diff


Respuesta final:

- qué cambió
- archivos modificados
- causa raíz si había un bug
- tests ejecutados
- riesgos restantes
Publicidad
Resumen

Workflow recomendado de Codex para WordPress

1

Git

Comprueba el estado del proyecto.

2

Contexto

Lee AGENTS.md e instrucciones.

3

Exploración

Mapea el flujo antes de editar.

4

Plan

Define cambio, archivos y riesgos.

5

Implementación

Realiza el cambio mínimo.

6

Seguridad

Revisa input, output, permisos y SQL.

7

Verificación

Ejecuta tests, lint y sintaxis.

8

Review

Inspecciona el diff final.

Fuentes oficiales

Documentación recomendada

OpenAI

How OpenAI uses Codex

Workflows, prompts, contexto y buenas prácticas.

Ver guía →
Publicidad
Publicidad
Preguntas frecuentes

FAQ sobre Codex para WordPress

Sí. Codex puede analizar y modificar repositorios WordPress, desarrollar plugins y themes, trabajar con PHP, JavaScript, MySQL, AJAX y REST API, ejecutar comandos y revisar los cambios resultantes.

Sí, pero para proyectos no triviales es mejor dividir el trabajo en funcionalidades claramente delimitadas. Primero conviene definir arquitectura, datos, permisos, interfaces y criterios de aceptación antes de implementar cada parte.

Sí. Puede seguir un flujo desde el frontend hasta PHP y base de datos, analizar logs, requests, respuestas, consultas y cambios Git para localizar la causa raíz de un error.

Sí. Puede analizar plugins que integran WooCommerce y trabajar con hooks, productos, pedidos, checkout, Mi Cuenta, metadata y otras APIs utilizadas por el proyecto.

Sí. Puedes pedirle que revise validación, sanitización, escaping, nonces, capabilities, consultas SQL, AJAX, REST API, uploads, filesystem y exposición de credenciales.

No. Los nonces ayudan a proteger contra solicitudes no intencionadas o CSRF, pero no sustituyen la autorización. Las acciones privilegiadas también deben comprobar las capacidades apropiadas del usuario.

Sí. Puede localizar consultas mediante $wpdb, identificar SQL dinámico y revisar si los valores variables están manejados de forma segura, incluyendo el uso de $wpdb->prepare() cuando corresponde.

Sí. Puede mapear rutas registradas, métodos, callbacks, argumentos y permission_callback para detectar endpoints que exponen datos o acciones sin autorización suficiente.

AGENTS.md permite guardar instrucciones persistentes para Codex, como arquitectura, comandos, reglas de seguridad, convenciones y verificaciones que deben aplicarse cada vez que el agente trabaja sobre el repositorio.

Sí. Una Skill puede encapsular workflows recurrentes como auditorías de seguridad, debugging, revisión de migraciones o preparación de releases para reutilizarlos entre proyectos.

Los Worktrees permiten que Codex realice una feature, corrección o experimento en un checkout Git independiente, sin mezclar esos cambios con el trabajo que tienes actualmente en tu carpeta principal.

Sí, si el proyecto dispone de tests o herramientas de verificación accesibles desde su entorno. Codex puede ejecutar comandos configurados en Composer, PHPUnit, PHPCS u otras herramientas utilizadas por el repositorio.

Sí. Las Automations pueden utilizarse para ejecutar revisiones periódicas, analizar cambios, detectar tests rotos, buscar problemas de seguridad o preparar propuestas de corrección. Para cambios automáticos conviene utilizar Git, permisos mínimos y worktrees aislados.

Publicidad
Siguiente guía

Mejores prompts para Codex: programación, debugging, tests y seguridad

Ya conoces las herramientas y workflows de Codex. El siguiente paso es aprender a escribir instrucciones que produzcan resultados más consistentes: prompts para entender repositorios, implementar features, encontrar bugs, revisar código, generar tests, trabajar con Git, WordPress y coordinar agentes especializados.

Ver mejores prompts para Codex →
Carrito de compra
Scroll al inicio