Integrando com a API REST do WordPress usando cURL e fetch

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.

Rolar para cima