- Introdução ao WordPress Headless
- REST API do WordPress: Visão Geral
- Configurando o WordPress como Backend Headless
- Frontend com Next.js: Setup e Integração Inicial
- Listagem de Posts e Roteamento Dinâmico no Next.js
Fala aí! Agora que entendemos o que é a REST API do WordPress, é hora de preparar nosso site para atuar como um backend desacoplado.
Isso envolve otimizações, configurações essenciais e algumas precauções para que o WordPress possa servir dados para o frontend moderno (React, Vue, Next.js) de forma estável e segura.
🧠 Ajustando Permalinks
A REST API depende de permalinks amigáveis (pretty permalinks). Verifique em:
Configurações > Links Permanentes
Escolha algo como: /post-name/
Sem essa configuração, a API pode retornar 404 ou apresentar inconsistências.
🌐 Habilitando CORS (Cross-Origin Resource Sharing)
Ao separar o frontend e o backend em domínios diferentes, o navegador vai bloquear requisições sem uma política CORS.
No functions.php
ou plugin customizado, adicione:
add_action('init', function() {
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
});
🔐 Nota: Em produção, substitua o
*
pelo domínio do seu frontend, para maior segurança.
🔐 Configurando Autenticação
Por padrão, a API é pública para leitura e restrita para escrita.
Você precisará de uma estratégia de autenticação, como:
- JWT Authentication (plugin recomendado)
- OAuth 1.0a (mais complexo, para apps robustos)
- Application Passwords (para testes rápidos)
Exemplo com JWT:
1️⃣ Instale o plugin JWT Authentication for WP REST API
2️⃣ Configure as chaves secretas no wp-config.php
3️⃣ Use tokens JWT para autenticar chamadas de escrita (ex: criar post, upload).
🛡️ Limitando Endpoints Disponíveis
Você pode restringir ou customizar a API removendo endpoints desnecessários:
add_filter('rest_endpoints', function($endpoints) {
unset($endpoints['/wp/v2/users']);
return $endpoints;
});
🧩 Expondo Custom Post Types na API
Se você usa Custom Post Types (ex: produtos, portfólio), garanta que estão visíveis na API:
register_post_type('meu_cpt', [
'label' => 'Meu CPT',
'public' => true,
'show_in_rest' => true,
'supports' => ['title', 'editor', 'thumbnail'],
]);
🔍 Verificando a Configuração
Acesse no navegador:
https://seudominio.com/wp-json/
Você verá a raiz da API, com todos os endpoints disponíveis.
🚀 Pronto para o Frontend
Com essas configurações, seu WordPress está apto a servir dados para o frontend Headless.
Nos próximos dias, vamos montar o frontend com Next.js, listar posts e integrar campos personalizados (ACF).