WordPress como puro CMS: menos es más
Cómo dejar WordPress “desnudo” para que solo haga una cosa: guardar y servir contenido.
El primer instinto al montar un WordPress es llenarlo de plugins. Uno para el SEO, otro para la caché, otro para los formularios, el constructor visual de turno… y sin darte cuenta tienes treinta piezas peleándose entre ellas. En headless hacemos justo lo contrario: dejamos WordPress en los huesos.
Suena raro, pero es liberador. Cuanto menos hace el backend, más rápido va, menos se rompe y menos superficie de ataque ofrece. Un WordPress headless bien montado es ligero y aburrido —en el mejor sentido de la palabra—.
La dieta: lo que le quitamos
- El tema. Ninguno activo. La capa de presentación vive fuera, en el front.
- Los constructores visuales (Elementor y compañía). Pesan, atan y aquí no pintan nada.
- Plugins de caché de página y de SEO pesado. De eso se encarga el front, que además es estático.
Lo que sí conservamos
- El propio WordPress y su editor de siempre —lo que el cliente ya sabe usar—.
- La REST API, que viene de fábrica y es nuestra puerta de salida.
- Una capa fina de «pegamento»: un must-use plugin. Y, si hay que estructurar contenido, campos a medida.
El truco del mu-plugin
Un must-use plugin se carga siempre y no se puede desactivar por accidente desde el panel. Es el sitio perfecto para la lógica headless: no ensucia la lista de plugins del cliente y nadie lo apaga sin querer. Se deja en wp-content/mu-plugins/ y con apenas unas líneas ya tienes un endpoint propio:
<?php
// wp-content/mu-plugins/headless.php
add_action( 'rest_api_init', function () {
register_rest_route( 'miapp/v1', '/home', array(
'methods' => 'GET',
'callback' => 'devolver_datos_de_la_home',
'permission_callback' => '__return_true',
) );
} );
A partir de ahí, el front pide /wp-json/miapp/v1/home y recibe justo lo que necesita, en una sola llamada.
Un buen backend headless no se nota. Solo guarda contenido y lo sirve limpio. Todo lo demás sobra.
¿Y mientras lo montas, dónde corre?
En desarrollo, la forma más cómoda de levantar WordPress es Local (de Flywheel/WP Engine): te crea un sitio completo —nginx, PHP y MySQL— con un dominio .local y sin tocar una sola línea de configuración. Este mismo proyecto se construyó así. Comprueba que la API responde con curl http://tu-sitio.local/wp-json/ y ya lo tienes listo.
Que lo prepare tu agente
Cópiale esto para dejar tu WordPress a dieta y listo para headless:
Prepara este WordPress como CMS headless siguiendo la skill
wp-wow: crea un must-use plugin en wp-content/mu-plugins
que registre un endpoint REST propio, deja el sitio sin tema activo
y sin plugins de más, y verifica que /wp-json responde.
En el siguiente capítulo abrimos esa puerta de salida a fondo: la REST API.