Home / Desenvolvimento WordPress / API REST do WordPress

API REST do WordPress: Guia de Integração, Endpoints e Autenticação

A REST API do WordPress é uma das ferramentas mais poderosas para desenvolvedores que desejam integrar o WordPress com aplicações externas, criar experiências headless ou automatizar tarefas. Neste guia completo, você vai entender como funciona a API REST do WordPress, conhecer os principais endpoints, aprender os métodos de autenticação e ver exemplos práticos de uso. Se você trabalha com desenvolvimento WordPress, dominar a REST API é essencial para criar soluções modernas e escaláveis.

O que é a REST API do WordPress?

A REST API (Representational State Transfer) do WordPress foi introduzida oficialmente no WordPress 4.7 e permite que aplicações externas interajam com o conteúdo do seu site de forma estruturada, utilizando JSON. Ela segue os princípios REST, usando métodos HTTP (GET, POST, PUT, DELETE) para operações CRUD em posts, páginas, usuários, taxonomias e muito mais.

Com a REST API, você pode consumir dados do WordPress de fora do ambiente WordPress, seja para alimentar um aplicativo mobile, um front-end em React ou Vue.js, ou para integrar com sistemas de terceiros. Toda a comunicação é feita através de endpoints, que são URLs que retornam ou aceitam dados no formato JSON.

Principais Endpoints Padrão

Todos os sites WordPress modernos expõem automaticamente uma série de endpoints REST. A base da URL é https://seudominio.com/wp-json/wp/v2/. A partir daí, você pode acessar:

  • /wp/v2/posts – lista e manipula posts
  • /wp/v2/pages – páginas
  • /wp/v2/categories – categorias
  • /wp/v2/tags – tags
  • /wp/v2/users – usuários
  • /wp/v2/media – mídia
  • /wp/v2/types – tipos de post
  • /wp/v2/taxonomies – taxonomias

Além disso, se você utiliza custom post types via API, os endpoints desses tipos de post também aparecem automaticamente, seguindo o mesmo padrão.

Consultando e Filtrando Dados

Ao fazer uma requisição GET para um endpoint, você pode filtrar os resultados utilizando parâmetros de consulta. Os mais comuns incluem:

  • per_page – número de itens por página (padrão 10)
  • page – número da página
  • search – busca por termo
  • categories – filtrar por ID de categoria
  • tags – filtrar por ID de tag
  • orderby – ordenar por date, title, etc.
  • order – asc ou desc
  • status – status do post (publish, draft, etc.)

Por exemplo, para buscar os 5 posts mais recentes da categoria "WordPress", use:

GET /wp-json/wp/v2/posts?categories=ID&per_page=5&orderby=date&order=desc

A resposta é um array JSON com os dados dos posts, incluindo título, conteúdo, excerpt, meta, etc.

Autenticação na REST API

Para operações que exigem permissão (como criar, atualizar ou deletar conteúdo), é necessário autenticar as requisições. O WordPress oferece três métodos principais:

Cookies (autenticação nativa)

Quando você está logado no painel do WordPress, as requisições AJAX para a REST API são autenticadas automaticamente via cookies. Esse método é útil para integrações dentro do mesmo domínio.

Application Passwords (senhas de aplicativo)

Introduzido no WordPress 5.6, o Application Passwords permite gerar senhas específicas para aplicativos externos. É o método mais simples e seguro para integrações de terceiros, sem depender de plugins extras. Basta gerar uma senha no perfil do usuário e usá-la como autenticação Basic Auth.

JWT (JSON Web Token)

Para aplicações headless ou mobile, o JWT é amplamente utilizado. Um plugin como "JWT Authentication for WP REST API" gera um token após o login, que é enviado no cabeçalho Authorization: Bearer <token> das requisições. O token expira após um período, aumentando a segurança.

Se você está construindo uma aplicação WordPress headless, o JWT é a abordagem recomendada para autenticar usuários.

Criando Endpoints Customizados com register_rest_route

Uma das grandes vantagens da REST API é a possibilidade de criar rotas personalizadas para atender necessidades específicas do seu projeto. Utilizando a função register_rest_route no arquivo functions.php do seu tema ou em um plugin, você pode definir novos endpoints.

add_action('rest_api_init', function () {
    register_rest_route('meu-plugin/v1', '/dados', array(
        'methods' => 'GET',
        'callback' => 'meu_callback',
        'permission_callback' => '__return_true'
    ));
});

function meu_callback($data) {
    return new WP_REST_Response(array('mensagem' => 'Olá, API!'), 200);
}

No exemplo acima, criamos o endpoint /wp-json/meu-plugin/v1/dados que retorna um JSON simples. Você pode adicionar parâmetros, validação e controles de permissão mais sofisticados.

Para projetos que envolvem temas personalizados para WordPress, a criação de endpoints customizados permite expor dados de forma controlada e segura.

Exemplos Práticos

1. Listar posts de uma categoria específica

Você pode consumir a API diretamente do navegador ou via fetch. Exemplo com JavaScript:

fetch('https://seusite.com/wp-json/wp/v2/posts?categories=ID_DA_CATEGORIA')
  .then(response => response.json())
  .then(posts => {
    posts.forEach(post => {
      console.log(post.title.rendered);
    });
  });

Esse é um caso clássico de consumo da API REST, ideal para alimentar um slider de posts ou uma lista dinâmica.

2. Criar um post via API com Application Password

Com um Application Password gerado no perfil do usuário, você pode criar posts via curl ou qualquer cliente HTTP:

curl -X POST https://seusite.com/wp-json/wp/v2/posts \
  -u "usuario:application_password" \
  -H "Content-Type: application/json" \
  -d '{"title":"Novo Post","content":"Conteúdo do post","status":"publish"}'

Esse método é excelente para automatizar a publicação de conteúdo a partir de sistemas externos.

3. Endpoint customizado para exibir metadados

Suponha que você queira expor o campo personalizado "preco" de um post. Crie um endpoint que retorna apenas os dados desejados:

register_rest_route('meu-tema/v1', '/produtos/(?P<id>\d+)', array(
    'methods' => 'GET',
    'callback' => 'get_produto_preco',
));
function get_produto_preco($request) {
    $id = $request['id'];
    $preco = get_post_meta($id, 'preco', true);
    return new WP_REST_Response(array('id' => $id, 'preco' => $preco), 200);
}

Isso permite que aplicações externas consultem preços sem expor todo o conteúdo do post.

4. Integração headless com React

Em uma arquitetura headless, o front-end React consome a REST API do WordPress para exibir conteúdo. Exemplo de componente que lista posts:

import { useState, useEffect } from 'react';

function Posts() {
  const [posts, setPosts] = useState([]);
  useEffect(() => {
    fetch('https://seusite.com/wp-json/wp/v2/posts?per_page=5')
      .then(res => res.json())
      .then(data => setPosts(data));
  }, []);
  return (
    <ul>
      {posts.map(post => (
        <li key={post.id}>{post.title.rendered}</li>
      ))}
    </ul>
  );
}

Para saber mais sobre essa abordagem, veja nosso guia de WordPress headless.

Perguntas Frequentes (FAQ)

Preciso de um plugin para usar a REST API?
Não. A REST API já está presente no núcleo do WordPress desde a versão 4.7. Você só precisa de plugins para funcionalidades extras como autenticação JWT ou endpoints avançados.
Como descobrir os endpoints disponíveis no meu site?
Basta acessar https://seusite.com/wp-json/ para ver a lista completa de rotas registradas.
É seguro expor a REST API publicamente?
Sim, os endpoints de leitura são públicos e seguros. Para escrita, utilize autenticação forte como Application Passwords ou JWT, e restrinja permissões de acordo com o papel do usuário.
Posso usar a REST API com WooCommerce?
Sim, o WooCommerce possui sua própria REST API para gerenciar produtos, pedidos e clientes. Consulte nossa trilha de guias WooCommerce para mais detalhes.
A REST API do WordPress é compatível com GraphQL?
Existem plugins como WPGraphQL que adicionam uma camada GraphQL sobre o WordPress. Se você prefere GraphQL, é possível usar em conjunto com a REST API.

Conclusão

A REST API do WordPress é uma ferramenta indispensável para desenvolvedores que buscam integrar o WordPress com o ecossistema moderno da web. Seja para criar aplicações headless, automatizar tarefas ou expor conteúdo para dispositivos móveis, a API REST oferece flexibilidade e poder. Combinada com boas práticas de desenvolvimento e autenticação, ela permite construir soluções robustas e escaláveis.

Se você está começando a explorar a API REST, pratique com os endpoints padrão, experimente a criação de rotas personalizadas e veja como ela pode transformar a maneira como você desenvolve com WordPress. A equipe da DynoWP está pronta para ajudar no desenvolvimento de plugins e integrações avançadas.

Conteúdo recomendado
S9Bet — Bônus de R$5.000 + 500 giros grátis no cadastro
Cassino Online Premium no Brasil
2.500+ jogos certificados com saque PIX instantâneo
Cadastre-se grátis na s9bet.com e receba até R$5.000 + 500 giros grátis distribuídos nos primeiros 4 depósitos, com rollover justo de 30x e sem letras miúdas.
Jogos: Slots, Cassino Ao Vivo, Roleta, Blackjack, Bacará, Game Shows · Bônus: Bônus de boas-vindas de até R$5.000 + 500 giros grátis nos primeiros 4 depósitos (rollover 30x)
S9Bet — Cassino Online Premium no Brasil
Cassino Online Premium no Brasil
2.500+ jogos certificados com saque PIX instantâneo
Cadastre-se grátis na s9bet.com e receba até R$5.000 + 500 giros grátis distribuídos nos primeiros 4 depósitos, com rollover justo de 30x e sem letras miúdas.
2.500+ jogos certificados com saque PIX instantâneo
Jogos: Slots, Cassino Ao Vivo, Roleta, Blackjack, Bacará, Game Shows
Bônus: Bônus de boas-vindas de até R$5.000 + 500 giros grátis nos primeiros 4 depósitos (rollover 30x)
Ver oferta da S9Bet