Como acessar a REST API JSON do WordPress

image_pdfimage_print

Instale os plugins:

  1. JSON Basic Authentication
    1. Como instalar:
      1. Acesse o diretório <root_do_worpress>
      2. Vá em wp-content/plugins
      3. git clone https://github.com/WP-API/Basic-Auth.git
      4. Vá na página de plugins do wordpress e ative o plugin
  2. WP REST API (apenas caso esteja utilizando WordPress < 4.7. Já está integrado no WPCore após esta versão)
    1. By WP REST API Team
    2. Descrição: JSON-based REST API for WordPress, originally developed as part of GSoC 2013./li>
    3. Como instalar:
      1. Pela própria página de plugin do wordpress é possível procurar, instalar e ativar este plugin

Com isto, estará ativo a wp-json/v2.

 

Para utilizá-lo é muito simples. As operações REST indicam o que deve ser feito. GET por exemplo iria obter os dados de um artigo, como abaixo demonstrado:

//Basta requisitar a URL
seu_wordpress_url/wp-json/wp/v2/posts/<post_id>

E o conteúdo será retornado, em formato JSON com vários campos. Utilize esta URL no seu browser por exemplo.

A operação a seguir, exclui o artigo 1000. Utilizaremos JS para isto:

let username = "SEU_USUARIO_WORDPRESS";
let password = "SENHA_SEU_USUARIO_WORDPRESS";
$.ajax({
    url: '<URL_DO_SEU_WORDPRESS>/wp-json/wp/v2/posts/1000',
    method: 'DELETE',
    crossDomain: true,
    beforeSend: function ( xhr ) {
        xhr.setRequestHeader( 'Authorization', 'Basic ' + Base64.encode( 'username:password' ) );
    },
    success: function( data, txtStatus, xhr ) {
        console.log( data );
        console.log( xhr.status );
    }
});

E a operação a seguir, iria criar um post. Iremos utilizar PHP para isto:

$title = "Título do post aqui";
$content = "Aqui vai o conteúdo do post do wordpress:
";
$content .= "Poderá ser utilizado um texto aqui equivalente a aba Text de edição do WordPress
";
$content .= "Fim do artigo";
$user_id = 20120215; //alvarenga.milton
$category = 20111123;//"Wordpress"
$tags = "77,89,94,320";//"PHP,JS,API,JSON"
		
$username = "USUARIO_DO_WORDPRESS_AQUI";
$password = "SENHA_DO_USUARIO_WORDPRESS_AQUI";

//Begin of POST request to get all models of manufacture
$ch = curl_init();
$url = "<URL_DO_SEU_WORDPRESS_AQUI>/wp-json/wp/v2/posts";
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");


$data = [];
$data['status'] = 'publish';
$data['title'] = $title;
$data['content'] = $content;
$data['author'] = $user_id;
$data['comment_status'] = 'closed';
$data["categories"] = $category;
$data["tags"] = $tags;
curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($data));
		
		
curl_setopt($ch, CURLOPT_HTTPHEADER, [                                                                          
    'Content-Type: application/json'                                                                                ]);
		
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
		
// Receber resposta do servidor
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		
$resposta = curl_exec ($ch);
		
curl_close ($ch);
//End of POST request

print $resposta;

Reforço que o sistema de permissão do WordPress também vale para a Api. Então as operações que podem ser realizadas pelo usuário via API são exatamente as mesmas da interface web do WordPress.

Documentação completa da REST API em: Página do WordPress

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!