Introdução
A API REST do WordPress é uma ferramenta poderosa que permite a interação programática com o conteúdo do seu site WordPress. Ela oferece endpoints para acessar, criar, atualizar e excluir dados do WordPress, como posts, páginas, categorias, e até usuários. Usando a API, você pode conectar WordPress com sistemas externos, aplicativos móveis e muito mais.
Neste post, vamos mostrar como consumir dados da API REST do WordPress utilizando cURL e fetch — duas abordagens muito comuns para interagir com APIs em PHP e JavaScript.
Como Funciona a API REST do WordPress?
A API REST do WordPress é acessada por meio de endpoints que retornam dados no formato JSON. O endpoint principal para acessar posts, por exemplo, é:
https://seudominio.com/wp-json/wp/v2/posts
Você pode realizar requisições GET para buscar informações, e também realizar requisições POST, PUT e DELETE para criar, atualizar e excluir dados.
Requisição Básica com cURL
1. Listando Posts
Para listar os posts, basta realizar uma requisição GET para o endpoint /wp-json/wp/v2/posts:
curl -X GET "https://seudominio.com/wp-json/wp/v2/posts"
Isso retornará uma lista de posts no formato JSON. A resposta incluirá campos como id, title, content, date, link, entre outros.
2. Requisição com Filtro por Categoria
Você pode filtrar os posts por categoria, usando o parâmetro categories e o ID da categoria:
curl -X GET "https://seudominio.com/wp-json/wp/v2/posts?categories=ID"
Substitua ID pelo número da categoria desejada.
3. Autenticação com cURL
Caso a API exija autenticação (como para editar ou criar posts), você pode usar a autenticação via Bearer Token. Aqui está um exemplo de como enviar o token com a requisição:
curl -X GET "https://seudominio.com/wp-json/wp/v2/posts" -H "Authorization: Bearer SEU_TOKEN"
Para obter o token, você pode usar plugins como JWT Authentication ou OAuth.
Requisição com fetch (JavaScript)
1. Listando Posts
Usando fetch, você pode facilmente consumir a API do WordPress em JavaScript (no navegador ou em um servidor Node.js):
fetch('https://seudominio.com/wp-json/wp/v2/posts')
.then(response => response.json())
.then(data => {
console.log(data); // Aqui você manipula os dados, como título e conteúdo dos posts
})
.catch(error => console.error('Erro:', error));
2. Requisição com Filtro por Autor
Para filtrar os posts por autor, use o parâmetro author e o ID do autor:
fetch('https://seudominio.com/wp-json/wp/v2/posts?author=ID_AUTOR')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));
3. Autenticação com fetch
Similar ao cURL, o fetch pode enviar um token de autenticação com a requisição. Aqui está um exemplo:
fetch('https://seudominio.com/wp-json/wp/v2/posts', {
method: 'GET',
headers: {
'Authorization': 'Bearer SEU_TOKEN'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));
Autenticação via JWT
Quando for necessário autenticar para criar ou editar posts, você pode usar o JWT Authentication no WordPress. Após instalar o plugin, é possível fazer login e obter um token com o seguinte endpoint:
POST https://seudominio.com/wp-json/jwt-auth/v1/token
Com esse token, você pode autorizar as requisições à API, como mostrado anteriormente, usando o header Authorization: Bearer SEU_TOKEN.
Manipulando a Resposta JSON
A resposta da API vem no formato JSON. Aqui está um exemplo de como você pode manipular os dados retornados para acessar o título e o conteúdo dos posts:
Exemplo de resposta JSON:
[
{
"id": 1,
"date": "2025-05-02T12:00:00",
"title": {
"rendered": "Título do Post"
},
"content": {
"rendered": "<p>Conteúdo do post...</p>"
},
"link": "https://seudominio.com/post/1"
}
]
Exemplo de manipulação:
Usando cURL (PHP)
$response = curl_exec($ch);
$posts = json_decode($response, true);
foreach ($posts as $post) {
echo "Título: " . $post['title']['rendered'] . "\n";
echo "Conteúdo: " . $post['content']['rendered'] . "\n";
}
Usando fetch (JavaScript)
fetch('https://seudominio.com/wp-json/wp/v2/posts')
.then(response => response.json())
.then(posts => {
posts.forEach(post => {
console.log('Título:', post.title.rendered);
console.log('Conteúdo:', post.content.rendered);
});
})
.catch(error => console.error('Erro:', error));
Considerações Finais
A API REST do WordPress oferece uma maneira poderosa de integrar sistemas externos e consumir dados do seu site. Usando cURL ou fetch, você pode facilmente acessar posts, páginas, categorias e outros dados do seu WordPress, além de criar, editar e excluir conteúdo programaticamente.
Se você precisar de mais funcionalidades, a API oferece suporte para muitos outros endpoints e parâmetros de filtragem.
Este conteúdo faz parte do Repositório de Conhecimentos DevData.
Conecte-se ao seu WordPress. Explore, automatize e integre.
