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