Tradycyjny WordPress: baza → theme render HTML → przesłanie do przeglądarki. Problem: theme jest tightly coupled do WordPressa. Jakkolwiek dużą zmianę designu chesz — konieczna duża przebudowa.
Headless WordPress: baza → REST API (zwraca JSON) → decoupled frontend (React, Vue, Next.js). Backend i frontend są całkowicie niezależne.
Podstawy REST API
WordPress expose’uje /wp-json/wp/v2/. GET /wp-json/wp/v2/posts zwraca wszystkie posty w JSON. GET /wp-json/wp/v2/posts/123 zwraca post #123. GET /wp-json/wp/v2/posts?search=divi zwraca posty zawierające „divi”.
To jest proste API. Każdy request zwraca JSON. Frontend aplikacja może konsumować ten JSON i wyświetlać jak chce.
Custom endpoints
Możesz register custom endpoint. register_rest_route(’myapp/v1′, '/featured-projects’, array(’methods’ => 'GET’, 'callback’ => 'get_featured_projects’));
Teraz masz /wp-json/myapp/v1/featured-projects — zwraca featured projects Twoją custom logikę.
Real world: Gatsby + WordPress headless
Gatsby to static site generator. Builda się na build time fetching content z WordPress API. Generates static HTML files. Deploy na CDN. Page loads w <0.5s. Najszybsze możliwe.
Advantage: security (brak PHP running na serverze), performance (static files), scalability (CDN serves files worldwide).