Com a função PHP wp_remote_post() você realiza um requisição HTTP utilizando o método POST e obtêm o seu retorno. Veja abaixo um exemplo da função:
<?php
$resposta = wp_remote_post( $url, $argumentos );
Code language: PHP (php)
Exemplo básico de autenticação com wp_remote_post()
Um exemplo prático da função wp_remote_post() é para fazer uma requisição com autenticação básica ($usuario
e $senha
).
<?php
$argumentos = array(
'body' => $corpo,
'headers' => array(
'Authorization' => 'Basic ' . base64_encode( $usuario . ':' . $senha ),
),
);
$resposta = wp_remote_post( $url, $argumentos );
Code language: PHP (php)
Obter o número de temas de um usuário do repositório oficial do WordPress com o wp_remote_post()
O WordPress.org possui várias APIs nas quais é possível obter várias informações interessantes. Criei então um exemplo para pegar o número de temas criado por um usuário utilizando a função wp_remote_post().
<?php
$usuario = "wordpressdotorg";
// Utiliza a versão 1.0 com o conteúdo serializado em PHP
$url = "https://api.wordpress.org/themes/info/1.0/";
// Definições dos parâmetros API
$parametros = array(
'author' => $usuario,
'per_page' => 0,
);
$argumentos = (object) $parametros;
$http_argumentos = array(
'body' => array(
'action' => "query_themes",
'timeout' => 15,
'request' => serialize( $argumentos )
)
);
// Faz a requisição
$resposta = wp_remote_post( $url , $http_argumentos );
if ( is_wp_error( $resposta ) ) {
$resposta_erro = $resposta->get_error_message();
echo "Erro ao fazer a requisição: " . $resposta_erro;
} else {
$conteudo = unserialize( $resposta['body'] );
if ( isset( $conteudo->info['results'] ) ) {
$temas = $conteudo->info['results'];
echo "O usuário ${usuario} criou ${temas} temas.";
} else {
echo "Não foi possível pegar o número de temas criado pelo usuário.";
}
}
Code language: PHP (php)
Deixe um comentário