概要
wp_remote_retrieve_body
関数は、WordPressのHTTP APIで取得したレスポンスデータのボディ部を取得するために使用されます。この関数は、外部APIとの通信や、Webhookの受信処理など、HTTPリクエストに関連した機能を実装する際に広く使われます。以下は、wp_remote_retrieve_body
関数がよく使用されるシナリオの例です。
- APIからのデータ取得
- 外部サービスとの連携
- JSONデータの解析
- HTMLコンテンツの取り込み
- RSSフィードの取得
- 認証情報を伴うリクエスト
- コールバック処理でのデータ取得
- デバッグやエラーログの取得
構文
string wp_remote_retrieve_body( array|WP_Error $response );
パラメータ
$response
(array|WP_Error) :wp_remote_get
やwp_remote_post
などの関数から返されるレスポンス配列、またはエラーオブジェクト。
戻り値
- 成功時: レスポンスボディの内容(文字列)
- 失敗時: 空文字列
関連する関数
対応バージョン
- WordPress 2.7.0 以降に対応
コアファイルのパス
wp-includes/http.php
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード1: APIからのデータ取得
$response = wp_remote_get('https://jsonplaceholder.typicode.com/posts');
if (is_array($response) && !is_wp_error($response)) {
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
print_r($data);
}
このサンプルコードは、外部APIからデータを取得し、レスポンスのボディ部分を取得してJSON形式でデコードし、出力します。
サンプルコード2: チェックとエラーハンドリング
$response = wp_remote_get('https://example.com/api');
if (is_wp_error($response)) {
// エラーハンドリング
echo 'エラーが発生しました: ' . $response->get_error_message();
} else {
$body = wp_remote_retrieve_body($response);
echo $body;
}
このコードは、APIへのリクエスト結果を検査し、エラーが発生した場合はエラーメッセージを表示し、成功した場合はレスポンスボディを表示します。
サンプルコード3: HTMLコンテンツの取得
$response = wp_remote_get('https://www.example.com/');
$body = wp_remote_retrieve_body($response);
if (!empty($body)) {
echo $body; // サイトのHTMLを出力
}
このサンプルは、特定のWebページのHTMLコンテンツを取得して出力します。
サンプルコード4: RSSフィードの取得
$response = wp_remote_get('https://example.com/feed');
$body = wp_remote_retrieve_body($response);
$xml = simplexml_load_string($body);
print_r($xml);
このコードは、RSSフィードを取得し、ボディ部分をXMLとして読み込みます。
サンプルコード5: 認証が必要なリクエスト
$response = wp_remote_get('https://api.example.com/secure-data', array(
'timeout' => 15,
'headers' => array(
'Authorization' => 'Bearer YOUR_API_TOKEN',
),
));
$body = wp_remote_retrieve_body($response);
echo $body;
このサンプルは、認証トークンを使用して保護されたAPIからデータを取得し、レスポンスボディを出力します。