Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the hustle domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114
Como utilizar wp_remote_post() no WordPress - Daniel Kossmann

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)


Comments

Deixe um comentário

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