Instale os plugins:
- JSON Basic Authentication
- Como instalar:
- Acesse o diretório <root_do_worpress>
- Vá em wp-content/plugins
- git clone https://github.com/WP-API/Basic-Auth.git
- Vá na página de plugins do wordpress e ative o plugin
- Como instalar:
- WP REST API (apenas caso esteja utilizando WordPress < 4.7. Já está integrado no WPCore após esta versão)
- By WP REST API Team
- Descrição: JSON-based REST API for WordPress, originally developed as part of GSoC 2013./li>
- Como instalar:
- 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




