Como utilizar wp_remote_post() no WordPress1 min leitura

Explicação de como utilizar a função PHP wp_remote_post() do WordPress e exemplo prático de código para fazer uma autenticação básica e outro para obter o número de temas de um usuário do repositório oficial do WordPress.

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)

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *